使用自动布局自定义UITableViewCell的子视图 - 没有xib,全部在代码中

时间:2013-02-15 17:55:25

标签: ios uitableview ios6 autolayout heightforrowatindexpath

使用自动布局工作(已验证)在代码中添加自定义UITableViewCell的子视图。但是,这样做的全部要点是不必计算每个tableview单元格的高度,并且委托方法heightForRowAtIndexPath在绘制tableview时需要高度。

如何根据内容使用自动布局(已添加和工作的代码中基于视觉格式语言的添加)找出此高度并将其返回到此heightForRowAtIndexPath?

另外,我是不是真的可以在后台线程上做这个(或者我可以吗?)因此如果我有一个UITableView使用这个由1000条记录列表支持,这将需要永远,是正确的?

1 个答案:

答案 0 :(得分:1)

在这种情况下,Autolayout只意味着您不需要计算每个单元格中子视图的帧大小。它与heightForRowAtIndexPath方法无关 - 表视图使用它来定义单元格的框架,然后通知子视图的布局。

使用Autolayout确定高度可能会非常慢,而且您无法在后台线程上执行此操作。如果你有1000行,那么我会考虑一个层次结构而不是单个表,因为滚动它会非常繁琐。您还可以考虑在设置或创建数据时计算高度。

可能能够使用您的约束设置屏幕外视图,使用您的每个项目的数据填充它,然后记录并缓存高度。但是你必须在数据端而不是高度方法中这样做,因为它太慢了。

相关问题