如何使用autolayout和堆栈视图动态设置行高

时间:2016-07-16 14:39:19

标签: ios uitableview autolayout

无法找到有效的解决方案。在所有这些自动布局和约束工作人员中有点丢失。 任务很简单 - 需要选择性地隐藏表格单元格中的一些信息。

enter image description here

如何在隐藏某些堆栈视图块时动态缩小行高?

我已经设定了:

TableView.RowHeight = UITableView.AutomaticDimension;
TableView.EstimatedRowHeight = 128;

以及最后一个堆栈视图底部和superview(单元格内容视图)之间的相关约束。但是当这个堆栈被隐藏时,显然必须有一些其他约束。 我做了另一个到主信息块(总是可见)和低优先级的superview底部。 但那不起作用......无法弄清楚约束,优先级和堆栈视图布局之间的所有关系。

想要提一下,由于内部上下文 - 基本上是多行标签,堆栈视图也具有动态大小。

1 个答案:

答案 0 :(得分:1)

如果设置堆栈视图的hidden属性,则它不再可见,但高度仍不为0,并且影响整个单元格高度。隐藏内容并重新计算内容视图高度的更好方法 - 将高度约束添加到堆栈视图并将其隐藏时设置为0。但它很复杂,因为堆栈视图的高度取决于内容。 我建议您将视图放在一个大的垂直堆栈视图中,然后将此垂直堆栈视图的顶部和底部约束连接到内容视图。堆叠视图会在隐藏孩子时自动调整高度,这可能会对您有所帮助。