【发布时间】:2014-07-27 20:07:53
【问题描述】:
我对 Cocoa 的自动布局如何确定布局是否模糊感到困惑。这是一个简单的例子:
观察到的行为如下。绿色矩形左侧和右侧的垫片始终具有相同的宽度。当您向外水平拉伸超级视图时,当矩形扩展时,垫片会保持 80。当您水平收缩超级视图时,矩形坚持到 398,而垫片收缩到 10,之后矩形继续收缩。 IB 在任何时候都不会将布局标记为模棱两可。
但是,您会注意到水平布局几乎完全由不等式定义!据我所见,当矩形的宽度大于 398 时,没有理由让垫片的宽度为 80。它们的宽度可以在 10 到 80 之间,并且仍然满足每个水平不等式。这对我来说听起来模棱两可,但 IB 显然不同意。
一定有一些我遗漏的隐含规则。请帮帮我!
【问题讨论】:
-
查看这些约束的优先级。你会明白的。
-
我不明白。我所描述的如何不模棱两可?优先事项如何影响不平等的解决方案?
-
让我们使用示例。您认为哪两个限制条件不明确?
-
绿色矩形的宽度约束为 >= 398,优先级 750。间隔的宽度约束为
-
使间隔扩展的约束是>=10(优先级1000)。 限制它无法进一步扩展。如您所见,>=10 约束具有更高的优先级。
标签: ios cocoa user-interface interface-builder autolayout