Uitableview 为什么自调整大小单元需要EstimateDroweight?

Uitableview 为什么自调整大小单元需要EstimateDroweight?,uitableview,ios9,Uitableview,Ios9,在设置UITableView“用于自调整单元格大小”时,必须指定estimatedRowHeight。为什么需要这样做?假设在显示单元格之前,系统将首先计算单元格高度?将行高度设置为UITableViewAutomaticDimension(-1),告诉自动布局引擎需要求解行高度。估计高度为发动机提供了求解布局约束方程的起始猜测 从估计值的文档中: 提供行高度的非负估计值可以提高加载表视图的性能。如果表格包含可变高度行,则在表格加载时计算其所有高度可能会很昂贵。使用“估计”可以将几何体计算的部分

在设置UITableView“用于自调整单元格大小”时,必须指定estimatedRowHeight。为什么需要这样做?假设在显示单元格之前,系统将首先计算单元格高度?

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

从估计值的文档中:

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

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


我不知道所提供的估计值如何提高性能-毕竟每个单元格的高度是不同的。UIKit不妨设置一个任意的估计值?为了帮助解算器,估计的高度应该尽可能接近最终高度。这会减少布局引擎查找正确值的迭代次数。即使单元高度急剧变化,将估计高度设置为平均值、中值或模式值,也将提供最接近的值开始求解,有望减少迭代次数(平均)。