ios uiview自动扩展尺寸

时间:2012-03-02 17:26:14

标签: ios uiview subview

我有UIView,宽度/高度为0/0。当我向subviews添加UIView时,有没有办法让宽度和高度自动更新

e.g。 如果我将10子视图并排添加,每个子视图的宽度为50,那么我希望我的UIView宽度为500

3 个答案:

答案 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个子视图。约束将是

  • 第一个子视图具有与外部UIView相关的最高边距约束
  • 第二个子视图具有与第一个子视图相关的最高边距限制。
  • 第3个子视图具有与第2个子视图相关的最高边距约束。
  • 依旧......
  • 第10个子视图具有与第9个子视图相关的最高边距约束。
  • 最重要的是,the 10th subview must have bottom margin constraint related to the outside UIView

为了满足上述约束,外部UIView必须具有自动包装4个子视图的高度。