我需要动态创建UIView
并将其显示为UITableView
或UIScrollView
中的单元格。
如何在不手动计算视图高度的情况下完成此操作(总结所有元素的高度)?
示例:我以编程方式在UIView中添加2个图像和10个垂直堆叠的文本。我把这个UIView放在单元格内容视图或滚动视图中。如何确保视图自身展开以显示其中的所有子视图?
修改
我想正确的方法是从上到下为每个子视图设置垂直和水平约束(包括最后一个元素的底部约束)。
问题在于我无法为动态UIView中的每个元素设置高度约束,因为这些元素也具有动态高度。
答案 0 :(得分:1)
您不需要添加明确的高度限制。您添加为子视图(图像视图,标签)的视图将具有自己的内在大小。只要确保你有前导,尾随,顶部和底部约束,单元格就会自行调整大小。
答案 1 :(得分:0)
Rounak的答案很棒但不完整。
对于内部有子视图的复杂视图,只需从上到下和侧面创建适当的约束即可。如果您没有明确设置高度限制,它会自动设置它自己的高度。
对于UILabel
或UIImageView
或MyCustomCircleImage
等自定义叶子视图,您必须覆盖intrinsicContentSize
。
如果AutoLayout没有从上到下连接约束,那么它将转向内在大小。