×
广告

estimatedRowHeight自适应cell

96
杨大虾
2017.04.18 23:37* 字数 432

iOS8新特性Self Sizing Cells,使用estimatedRowHeight自适应cell

iOS UITableView 自适应高度的注意事项

优化UITableViewCell高度计算的那些事

摘要:

注意事项
当高度变成自适应后不代表你就需要在关注单元格的高度, Apple 的官方文档强调 estimatedRowHeight 设置得越精确越好. 因为系统需要利用 estimatedRowHeight 来计算滚动条的高度和位置等数据. 如果你提供的预估高度跟实际问题就可以导致一些滚动上的问题, 影响用户体验.
设置估算高度后,contentSize.height根据“cell估算值 x cell个数”计算,这就导致滚动条的大小处于不稳定的状态,contentSize会随着滚动从估算高度慢慢替换成真实高度,肉眼可见滚动条突然变化甚至“跳跃”。
若是有设计不好的下拉刷新或上拉加载控件,或是KVO了contentSize或contentOffset属性,有可能使表格滑动时跳动。
估算高度设计初衷是好的,让加载速度更快,那凭啥要去侵害滑动的流畅性呢,用户可能对进入页面时多零点几秒加载时间感觉不大,但是滑动时实时计算高度带来的卡顿是明显能体验到的,个人觉得还不如一开始都算好了呢(iOS 8更过分,即使都算好了也会边划边计算)。

如果不加上估算高度的设置,自动算高就失效了

如此说来,貌似还不够强大只适合简单的布局时用

iOS17.04
Web note ad 1