如何创建高度取决于子视图的视图?

时间:2018-02-01 09:58:43

标签: ios layout

这与询问如何在iOS中实现wrap_content相同。

然而,我找不到合适的解决方案。几乎所有解决方案都建议覆盖intrinsicContentSize()。如果视图不知道有关其孩子身高的任何信息该怎么办?

案件是这样的:

我想创建一个BaseDialogViewController,它负责模糊背景并显示一个对话框容器。然后,如果我想实现一个对话框,我将扩展BaseDialogViewController并将对话框内容添加到容器视图。

因此,容器需要根据其内部的内容总高度调整其高度。

我如何实现这一目标?

2 个答案:

答案 0 :(得分:1)

只需为从子视图到容器视图的所有边框设置约束。您应该确保子视图可以通过将所有边框的约束设置为其子元素来计算其包含元素的大小,等等。

容器视图应该只对其位置有其他约束(例如,在其父视图中居中)。

其余的由Autolayout完成。它将计算从最内层元素到固定或内在大小(例如标签,文本字段,按钮)到外部元素的大小。

答案 1 :(得分:0)

我意识到如果指定了子视图高度,或者具有固有高度,

你可以设置约束从父母的底部到孩子的底部,通过设置它,父母的身高可以根据孩子视图的底部位置而变化。

我是从this answer发现的。