首页 > UITableViewCell 数据源方法返回cell的疑问

UITableViewCell 数据源方法返回cell的疑问

如题,视图控制器定义了一个成员变量:mCell,初始化为nil
然后在数据源方法override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell 把cell赋值给mCell:

然后在计算高度的方法中想使用mCell,结果报nil错误:

请问原因是啥?


不太懂swift
你注册cell了吗,如果注册了是不用判断cell是否为nil
(现在判断一个东西为空,我都是用感叹号判断了,写==容易出错)

另外我记得heightforrow方法会调cellforrow还是cellforrow会调heightforrow的
这样弄会循环,我不知道你heightforrow方法里面是什么意思

我的cellheight如果为了适配8以下的,我会给模型增加一个cellheight属性
再重写cellheight的getter方法在里面计算高度,然后heightforrow返回当前row模型的cellheight


注意下这两个方法的调用顺序


在UITableView中是先计算每个Cell的高度,以便确定UIScrollView的contentSize,然后再调用数据源方法获取Cell。显然,当你的代码在计算Cell的高度时,Cell还没被创建。我的建议是搞一个Model,将Cell中的数据进行封装,并在Model中提供获取Cell高度的接口。

【热门文章】
【热门文章】