iOS UIView,动态高度取决于内部元素的数量

时间:2015-07-09 11:52:51

标签: ios objective-c cocoa-touch uiview uikit

我需要动态创建UIView并将其显示为UITableViewUIScrollView中的单元格。

如何在不手动计算视图高度的情况下完成此操作(总结所有元素的高度)?

示例:我以编程方式在UIView中添加2个图像和10个垂直堆叠的文本。我把这个UIView放在单元格内容视图或滚动视图中。如何确保视图自身展开以显示其中的所有子视图?

修改

我想正确的方法是从上到下为每个子视图设置垂直和水平约束(包括最后一个元素的底部约束)。

问题在于我无法为动态UIView中的每个元素设置高度约束,因为这些元素也具有动态高度

2 个答案:

答案 0 :(得分:1)

您不需要添加明确的高度限制。您添加为子视图(图像视图,标签)的视图将具有自己的内在大小。只要确保你有前导,尾随,顶部和底部约束,单元格就会自行调整大小。

答案 1 :(得分:0)

Rounak的答案很棒但不完整。

对于内部有子视图的复杂视图,只需从上到下和侧面创建适当的约束即可。如果您没有明确设置高度限制,它会自动设置它自己的高度。

对于UILabelUIImageViewMyCustomCircleImage等自定义叶子视图,您必须覆盖intrinsicContentSize

如果AutoLayout没有从上到下连接约束,那么它将转向内在大小。