【发布时间】:2016-02-19 16:56:00
【问题描述】:
我创建了一个具有以下约束的矩形:
如果我将约束的优先级设置为width >=250 到999,那么宽度equal == 200 将适用于小型设备,而width >= 250 适用于大型设备。
但它不起作用。我阅读了文档:
在解决了所需的约束之后,自动布局会尝试 按从高到低的优先级顺序解决所有可选约束 最低。如果它不能解决可选约束,它会尝试 尽可能接近想要的结果,然后继续 下一个约束。
这种不平等、平等和优先事项的组合为您提供 很大的灵活性和力量。通过组合多个 约束,您可以定义动态适应大小的布局 用户界面中元素的位置和位置发生变化。
【问题讨论】:
-
如果你有一个约束说你的宽度应该是 200,并且这个约束是必需的,那么它总是 200 点宽。我在您列出的约束中看不到任何会导致它们的约束切换到您的 >=250 约束的内容。如果有足够的空间,您将需要添加诸如前导和尾随约束之类的东西,以尝试使框变宽。
-
只有当两个约束冲突时,优先级才会成为决胜局。因此,您不能只拥有
width >= 250的单一约束,并期望图像的大小会根据设备中视图的大小而增长。您必须添加其他约束,以允许自动布局针对新添加的约束考虑这种不等式。
标签: ios autolayout