2013-02-15 31 views
2

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

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

另外我是我真的不能在后台线程(或我可以吗?)做到这一点,因此,如果我有一个UITableView使用这个支持1000条记录列表支持,这将永远是,这是对?

回答

1

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

使用Autolayout来确定高度可能会非常缓慢,你不能在后台线程上做到这一点。如果你有1000行,那么我会考虑一个层次结构,而不是一个表,因为这将是非常繁琐的滚动。您还可以考虑在设置或创建数据时计算高度。

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

相关问题