NSLayoutConstraint 和动态 UITableViewCell 高度

Posted

技术标签:

【中文标题】NSLayoutConstraint 和动态 UITableViewCell 高度【英文标题】:NSLayoutConstraint and dynamic UITableViewCell height 【发布时间】:2012-10-09 18:33:28 【问题描述】:

如何为动态 tableViewCell 高度编写(或在 IB 中执行)布局约束?例如,如果单元格的 contenView 中有 textView(大小适合),我希望单元格与标签一样高。

【问题讨论】:

【参考方案1】:

如果您已经完全正确地设置了约束,您可以通过获取单元格的实例并在其上调用systemLayoutSizeFittingSize:UILayoutFittingCompressedSize 来计算高度。这将导致您的实例围绕约束收缩,从而为您提供所需的高度。

但是,表格中的单元格的高度仍将来自tableView:heightForRowAtIndexPath:。所以你仍然必须做在自动布局存在之前你会做的事情:你必须提前计算所有单元格的高度,以便你可以响应tableView:heightForRowAtIndexPath: 的一连串呼叫。不同之处在于,现在您使用自动布局来执行高度计算,而不是之前所做的任何事情。

现在有个坏消息:对于长桌,这可能会很慢。

【讨论】:

以上是关于NSLayoutConstraint 和动态 UITableViewCell 高度的主要内容,如果未能解决你的问题,请参考以下文章

由于 NSLayoutConstraint 错误,具有 automaticDimension 的 UITableView 不会动态增加大小

NSLayoutConstraint 设置优先级

具有动态变量的自动布局约束?

Superview中UIPageControl的编程垂直对齐使用NSLayoutConstraint

NSLayoutConstraint 更改后,systemLayoutSizeFittingSize 不起作用

使用 NSLayoutConstraint 将大型 UIView 居中