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

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

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

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

最佳答案

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

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

  • 第一个约束确保无论什么,该空间都将大于或等于零。第二个约束条件是,如果可能的话,也要使空间恰好等于零。

    然后,可以使用水平空间约束将上述内容复制到蓝色和绿色视图的右边缘。

    10-08 16:26