UIView使用自动布局拥抱所有子视图

时间:2014-08-30 10:56:32

标签: ios objective-c autolayout

Example 1 Example 2

在上面,橙色,蓝色和绿色视图是黄色视图的子视图。我需要父(黄色)视图的边框来拥抱其子视图。两幅图像之间唯一的移动是绿色子视图向上和向右移动。

由于橙色视图的底部现在低于绿色视图的底部,因此父视图会拥抱橙色视图的底部边缘。

同样,由于绿色视图的右边缘经过蓝色视图的右边缘,因此父视图会拥抱绿色视图的右边缘。

有没有办法在Auto Layout约束下执行此操作,还是必须编写自定义代码?

1 个答案:

答案 0 :(得分:2)

对于底边,橙色和绿色视图都需要两个垂直空间约束。他们是:

  • 垂直空间约束,关系设置为"大于或等于"并且常量设置为0。
  • 垂直空间约束,关系设置为"等于",常量设置为0,优先级低于第一个约束

第一个约束确保无论如何,空间将大于或等于零。第二个约束是,如果可能的话,也有等于零的空间。

然后可以使用水平空间约束来复制上面的蓝色和绿色视图的右边缘。