2

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

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

此外,我真的不能在后台线程上执行此操作(或者我可以吗?),因此,如果我有一个 UITableView 使用它并由 1000 条记录的列表支持,这将永远持续下去,对吗?

4

1 回答 1

1

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

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

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

于 2013-02-15T20:48:04.117 回答