iOS tableView估算高度的作用
1、属性介绍
在 iOS7.0之后出现了estimatedRowHeight这个属性,
default is UITableViewAutomaticDimension, set to 0 to disable
默认是在tableview所有cell的真实高度是自动计算的(根据设置的约束自动计算)时候使用
// self-sizing技术 (iOS8 开始支持的)
// 告诉tableView所有cell的真实高度是自动计算的(根据设置的约束自动计算)
//iOS8之后默认就是这个值,可以省略
self.tableView.rowHeight =UITableViewAutomaticDimension;
// 告诉tableView所有cell的估算高度
self.tableView.estimatedRowHeight =44;
2、使用场景
iOS7.0 tableView就有了估算高度及相关属性,但是真正运用是在self-sizing技术(iOS8开始支持)。
在tableview加载完数据渲染时,需要考虑到滚动条的长度显示问题,所以要一次性将所有cell的高度全部计算完毕,从而确定滚动条的长度精度,当数据量大的时候,每个cell高度确认都要调用tableview的数据源方法heightForRowAtIndexPath,就会造成无谓的性能消耗,此时可以考虑使用self-sizing了,开启self-sizing后,tableview计算滚动条的显示长度,不会再每个cell高度确认都要调用tableview的数据源方法heightForRowAtIndexPath,而是按屏幕视图窗口显示多少个cell,使用估算高度来大致计算tableview的contentSize,不需要每个cell的高度都计算一遍后再确定contentsize,从而可以优化性能。
Self-Sizing在iOS11之前版本是默认关闭的,但是iOS11后是默认开启的。