ios - Auto Layout - 添加多个约束的效果

标签 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(优先级 249)。它也降低了优先级,所以我想,它永远不会被评估,因为第一个约束 - First Name Text Field.Top >= Top Layout Guide.Bottom + 20.0 具有更高的优先级。

有人可以向我解释一下这个逻辑吗?添加2个不同优先级的约束有什么意义吗?有没有点添加大于或等于约束和约束,等于相同的值(在这种情况下为 20)? 谢谢。

最佳答案

大于或等于 约束就其本质而言是不明确的。您已告诉自动布局 使您的名字文本字段与顶部布局指南底部之间的距离至少 20。请注意,203050 都将满足该约束。

通过添加第二个约束,您告诉自动布局您希望它为20。通过将优先级设置为 249,您告诉 Auto Layout 此请求(优先级为 1000)并且应该如果需要打破约束才能使事情正常进行,则首先被打破。

因此,使用这两个约束,Auto Layout 将尽可能使距离 20。否则,它将使用大于 20 的值。

关于ios - Auto Layout - 添加多个约束的效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48121289/

相关文章:

ios - Swift 4 中的额外参数调用

iOS 应用程序因 "function signature specialization <Arg[0] = Exploded, Arg[2] = Exploded>"而崩溃

ios - 纵向模式下的动画 UIView 在 ios 上的横向模式下不一致

ios - UITableViewCell 在第一次加载时无法正确呈现

ios - 尝试加载 xib 文件时无法同时满足约束条件

ios - UINavigation Controller 在显示 ViewController 时崩溃

ios - 如何对 UIView 应用模糊?

持续集成环境中的 iOS App Store 发布

ios - 按钮被标签栏覆盖

ios - autolayout - 使 View 高度相对于父 View 高度的一半