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后是默认开启的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容