我是前言
这篇文章是我和我们团队最近对 UITableViewCell 利用 AutoLayout 自动高度计算和 UITableView 滑动优化的一个总结。
我们也在维护一个开源的扩展,UITableView+FDTemplateLayoutCell,让高度计算这个事情变的前所未有的简单,也受到了很多星星的支持,github链接请戳我
这篇总结你可以读到:
- UITableView高度计算和估算的机制
- 不同iOS系统在高度计算上的差异
- iOS8 self-sizing cell
- UITableView+FDTemplateLayoutCell如何用一句话解决高度问题
-
UITableView+FDTemplateLayoutCell中对RunLoop的使用技巧
UITableViewCell高度计算
rowHeight
UITableView是我们再熟悉不过的视图了,它的 delegate 和 data source 回调不知写了多少次,也不免遇到 UITableViewCell 高度计算的事。UITableView 询问 cell 高度有两种方式。
一种是针对所有 Cell 具有固定高度的情况,通过:self.tableView.rowHeight = 88;上面的代码指定了一个所有 cell 都是 88 高度的 UITableView,对于定高需求的表格,强烈建议使用这种(而非下面的)方式保证不必要的高度计算和调用。rowHeight属性的默认值是 44,所以一个空的 UITableView 显示成那个样子。
另一种方式就是实现 UITableViewDelegate 中的:










