我看了一下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(优先级 249)
。它也降低了优先级,所以我想,它永远不会被评估,因为第一个约束 - First Name Text Field.Top >= Top Layout Guide.Bottom + 20.0
具有更高的优先级。
有人可以向我解释一下这个逻辑吗?添加2个不同优先级的约束有什么意义吗?有没有点添加大于或等于约束和约束,等于相同的值(在这种情况下为 20)? 谢谢。
最佳答案
大于或等于 约束就其本质而言是不明确的。您已告诉自动布局 使您的名字文本字段与顶部布局指南底部之间的距离至少 20
。请注意,20
、30
和 50
都将满足该约束。
通过添加第二个约束,您告诉自动布局您希望它为20
。通过将优先级设置为 249
,您告诉 Auto Layout 此请求低(优先级为 1000
)并且应该如果需要打破约束才能使事情正常进行,则首先被打破。
因此,使用这两个约束,Auto Layout 将尽可能使距离 20
。否则,它将使用大于 20
的值。
关于ios - Auto Layout - 添加多个约束的效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48121289/