AutoLayout根据children设置UITableViewCell的高度

Posted

技术标签:

【中文标题】AutoLayout根据children设置UITableViewCell的高度【英文标题】:AutoLayout set height of UITableViewCell based on children 【发布时间】:2015-03-20 21:38:17 【问题描述】:

我正在尝试根据其子项的约束来设置 UITableViewCell 的高度。基本上,这是布局:

UITableView > UITableViewCell > NestedUIView(可计算高度)

我首先将NestedUIView 的顶部、底部、左侧和右侧约束设置为距离UITableViewCell 10 像素。然后,我尝试添加一个高度约束(这在我的脑海中会强制 UITableViewCell 扩展以适应该内容。当然,它会导致约束冲突并失败。

这似乎应该是微不足道的,我做错了什么?

【问题讨论】:

【参考方案1】:

将此添加到您的 viewDidLoad 方法中

self.tableView.rowHeight = UITableViewAutomaticDimension;
self.tableView.estimatedRowHeight = 42;

这将告诉表格使用单元格约束来确定高度。

【讨论】:

奇怪的是,添加该代码的效果为零。冲突错误看起来仍然完全相同。 其实我只是让它工作。我需要将约束应用于单元格的 contentView 而不是单元格本身。有道理。 实际上我现在看到如果我将高度设置得太高(大约 > 200),它会再次导致错误。有什么想法吗?

以上是关于AutoLayout根据children设置UITableViewCell的高度的主要内容,如果未能解决你的问题,请参考以下文章

XCODE/Swift Autolayout ScrollView with dynamic label, textview etc. 如何根据 textview 设置滚动视图高度

AutoLayout 将 UILabel 高度设置为零

如何使用 AutoLayout 根据父高度调整子视图高度而不添加/删除约束

AutoLayout正确定位按钮

IOS / Autolayout:在生命周期中为代码中创建的元素设置约束

使用 Autolayout 在 UITableView 中异步加载图像