UIView的拥抱使用自动布局
问题描述:
在上面的所有子视图,橙色,蓝色和绿色的观点是黄色的视图的子视图。我需要父(黄色)视图的边框来拥抱它的子视图。这两幅图像之间发生的唯一移动是绿色子视图向上和向右移动。
因为橙色视图的底部现在低于绿色视图的底部,所以父视图拥抱橙色视图的底部边缘。
同样,由于绿色视图的右边缘超过了蓝色视图的右边缘,父视图拥抱了绿色视图的右边缘。
有没有办法做到这一点与自动布局的约束,还是我必须编写自定义代码?
答
对于底部边缘,橙色和绿色视图均需要两个垂直空间约束。它们是:
- 垂直空间的限制有关系设置为“大于或等于”,并不断设置为0
- 垂直空间的限制有关系设置为“平等”,不断设置为0,优先低于第一个约束。
第一个约束确保无论如何,空间将大于或等于零。第二个约束条件是(如果可能的话)也具有等于零的空间。
然后可以使用水平空间约束代替蓝色和绿色视图右边缘的上述内容。