为什么要为自动调整大小的单元格需要估计行高度?

Boo*_*oon 2 uitableview ios9

在设置UITableView用于自定义单元格大小时,必须指定EstimatedRowHeight。考虑到像元高度将在显示像元之前先由系统计算出来,所以为什么甚至需要这样做呢?

Jbr*_*son 6

将行高设置为UITableViewAutomaticDimension(-1),告诉自动布局引擎需要解决行高。估计的高度为引擎提供了一个开始猜测,以解决布局约束方程。

从有关估算行高的文档中:

提供行高度的非负估计可以提高加载表视图的性能。如果表格包含高度可变的行,则在表格加载时计算其所有高度可能会很昂贵。使用估算可以使几何计算的某些成本从加载时间推迟到滚动时间。

创建自调整大小的表格视图单元格时,需要设置此属性并使用约束来定义单元格的大小。

  • 为了帮助求解器,估计高度应尽可能接近最终高度。这样可以减少布局引擎查找正确值的迭代次数。即使单元的高度发生极大变化,将估计的高度设置为平均值,中位数或众数值也可以提供最接近的值来开始求解,从而希望减少迭代次数(平均)。 (2认同)