我有UIView
,宽度/高度为0/0。当我向subviews
添加UIView
时,有没有办法让宽度和高度自动更新 ?
e.g。
如果我将10
子视图并排添加,每个子视图的宽度为50
,那么我希望我的UIView
宽度为500
。
答案 0 :(得分:2)
UIView的sizeToFit
会调整你的视图大小,以适应其中的所有内容。
但是......这非常依赖于您添加到视图中的子视图。添加视图非常简单:
[myView addSubview:innerView];
内心的frame
有很大的不同。
如果你添加10个子视图,其x / y原点为0/0,宽度/高度为0/0,那么sizeToFit
会说你需要你的视图需要宽度/高度为0/0才能适合所有子视图。
如果您添加1个子视图,其x / y原点为10/10,宽度/高度为5/5,则sizeToFit
表示您需要宽度/高度为15/15以适合所有子视图。< / p>
答案 1 :(得分:1)
我没有遇到任何会自动执行的功能。您必须通过计算子视图的位置和大小来设置框架。
答案 2 :(得分:0)
是的,UIView可以做到这一点。我最近遇到了这个问题,这是我的解决方案。
假设你有一个UIView和10个子视图。您必须为子视图设置约束,以便外部UIView知道它将达到什么尺寸。
例如,您想要垂直布局10个子视图。约束将是
the 10th subview must have bottom margin constraint related to the outside UIView
。为了满足上述约束,外部UIView必须具有自动包装4个子视图的高度。