自动布局 - 添加多个约束的效果

时间:2018-01-05 21:07:35

标签: ios autolayout

我查看this文章,我有一个问题。

考虑对文本字段对象进行以下约束:

First Name Text Field.Top >= Top Layout Guide.Bottom + 20.0
First Name Text Field.Top = Top Layout Guide.Bottom + 20.0 (Priority 249)

我很困惑。如果我添加更大或更大的约束,不是意味着我已经说过 - 设置这个距离大于或等于20?添加第二个约束 - First Name Text Field.Top = Top Layout Guide.Bottom + 20.0 (Priority 249)的重点是什么。它也降低了优先级,所以我想,它永远不会被评估,因为第一个约束 - First Name Text Field.Top >= Top Layout Guide.Bottom + 20.0具有更高的优先级。

有人可以向我解释这个逻辑吗?有没有意义添加2个具有不同优先级的约束?是否添加大于等于约束和约束的任何点,等于相同的值(在大小写为20)? 感谢。

1 个答案:

答案 0 :(得分:1)

大于或等于约束本质上是不明确的。您已告知自动布局,以使您的名字文本字段与顶部布局指南的底部之间的距离至少为 <script src="https://cdnjs.cloudflare.com/ajax/libs/OverlappingMarkerSpiderfier/1.0.3/oms.min.js"> 。请注意,202030都会满足该约束。

通过添加第二个约束,您可以告诉自动布局您希望它是50。通过优先级20,您告诉自动布局此请求(优先级转到249),如果需要,应先破解打破约束使事情发挥作用。

因此,使用这两个约束,自动布局将尽可能使距离1000。如果没有,它将使用大于20的值。