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

4
这与在iOS中如何实现wrap_content的效果相同。
然而,我没有找到合适的解决方案。几乎所有的解决方法都建议重写intrinsicContentSize()。如果视图对其子元素的高度一无所知怎么办?
情况是这样的:
我想创建一个BaseDialogViewController,负责模糊背景并显示对话框容器。然后,如果我想实现一个对话框,我将扩展BaseDialogViewController并将对话框内容添加到容器视图中。
因此,容器需要根据其中所有内容的总高度调整自己的高度。
我该如何实现这个?
2个回答

1

只需为子视图和容器视图之间的所有边框设置约束条件。您应该确保子视图可以从其包含的元素计算其大小,通过为其子元素设置所有边框的约束条件,以此类推。

容器视图应仅具有其位置的附加约束条件(例如,在其父视图中居中)。

其余部分由自动布局完成。它将计算具有固定或内在大小的最内部元素(例如标签、文本字段、按钮)到外部元素的大小。


0

我意识到,如果子视图的高度已经指定或具有固有高度,

您可以设置从父视图底部到子视图底部的约束,通过设置此约束,父视图的高度将能够根据子视图的底部位置而变化。

我从这个答案中发现了这一点。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接