美文网首页
tableview 中heightForRow方法 与 性能优化

tableview 中heightForRow方法 与 性能优化

作者: 傅里叶的幻想 | 来源:发表于2017-04-23 22:42 被阅读0次

一)调用有两处

1)此代理方法每次reload都会调用,调用次数就是数据源给出的cell的个数.目的是算出contentsize.height 这样给出精确的滚动条
2)每次有新的cell进入,都会再次调用此cell的heigtforRow,目的是算出本cell的高度
所以,在此方法计算cell的frame 效率比较低,因为会重复调用,重复计算.

二)性能优化:

1)self.tableView.estimatedRowHeight = 44;
2)- (CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return 44;
}

这是预算高,得到的滚动条不精确,reload的时候哪怕有100条数据 也只有几次到十几次(与返回值(44)有关系,越大调用次数越少,不过也不能太大,太大滚动条误差太大,会发生跳跃) .
哪些cell要显示,会调用cellForRow 得到真实高度.

总结:

优点:用estimate 可以有效的降低cellForRow的调用次数,完成性能的优化

缺点:滚动条不准确,有卡顿感

相关文章

网友评论

      本文标题:tableview 中heightForRow方法 与 性能优化

      本文链接:https://www.haomeiwen.com/subject/hnnyzttx.html