2014-08-30 62 views
1

Example 1Example 2UIView的拥抱使用自动布局

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

因为橙色视图的底部现在低于绿色视图的底部,所以父视图拥抱橙色视图的底部边缘。

同样,由于绿色视图的右边缘超过了蓝色视图的右边缘,父视图拥抱了绿色视图的右边缘。

有没有办法做到这一点与自动布局的约束,还是我必须编写自定义代码?

回答

2

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

  • 垂直空间的限制有关系设置为“大于或等于”,并不断设置为0
  • 垂直空间的限制有关系设置为“平等”,不断设置为0,优先低于第一个约束

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

然后可以使用水平空间约束代替蓝色和绿色视图右边缘的上述内容。