-----------------
| |
| ____________ |
| | | |
| |__________| |
| |
| ____________ |
| |label. | |
| |__________| |
| |
| ____________ |
| | | |
| |__________| |
| |
| ____________ |
| |label. | |
| |__________| |
|________________|
子视图如下:(视图,标签,视图,标签)。我希望单元格使用两个标签动态调整大小,例如,如果第一个标签变高,则单元格应相应变高。如果两个标签变高或变短,则单元格应相应调整大小。这两个视图应具有恒定的宽度和高度。
如果我以一个标签开始,我很好,一个标签和一个视图我都很好,一个标签和一个标签,我很好,但是如果我有2个标签和一个视图,我一放进去最后标签上的最后一个约束,自动布局会在情节提要中引发错误(运行应用程序时,我没有可见的问题)。
问题是我不想更改抗压缩性,因为我不想使任何一个标签都皱缩,也看不到为什么它们会赋予所提供的约束。
答案 0 :(得分:1)
答案 1 :(得分:0)
似乎您已经正确设置了约束,情节提要板上的错误也显示出约束的微小变化,例如0.5像素。您可以删除最后一个UILabel
的底部约束并重新分配,以便可以重新安排冲突的约束。它将解决此问题。
要获取动态单元格大小:
将UILabel
的行数都设置为0。
将两个UILabel的高度约束的关系从=
更新为>=
在您的代码中应用以下表委托方法
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return UITableViewAutomaticDimension
}
使用UIStackView
解决此问题:
您可以在堆栈视图中使用所有视图,而不必在所有视图中添加约束,只需将顶部,底部,前导和尾随约束分配给堆栈视图并保留表委托方法。我认为这将是更合适的方式。