Xcode 6不遵守自动布局约束

时间:2015-04-01 14:45:36

标签: objective-c xcode autolayout

我原本希望我的故事板文件可以扩展到模拟器/设备屏幕的大小。我无法弄清楚如何在Xcode 6中做到这一点。 我的另一个想法是使用界面构建器对项目中的按钮施加约束。我在按钮上设置了一些限制 - 例如,我尝试通过单击视图的背景然后连接到按钮(然后选择"在容器中水平居中&#34)将锁定中心约束放在一个按钮上)。但是当我运行程序时,按钮不会重新居中。这同样适用于我放置后缘的约束。 XCode完全忽略了所有这些。如果我运行iPhone 6模拟器,按钮不会增加填充模拟器的空间(他们"放大"在大小意义上,但不要移动自己)。我做错了什么?

3 个答案:

答案 0 :(得分:0)

确保所有约束线都是蓝色(不是橙色,并且您没有警告说您的按钮在运行时会显示不同。如果您有任何这些问题,一个好的开始步骤是删除坏(橙色)约束并使用“添加缺失约束”重新运行项目并检查布局。

另一种方法是删除所有约束并使用其中一个按钮的“添加建议约束”,并根据该按钮创建其余约束。

答案 1 :(得分:0)

这不是Xcode 6的问题。您无法熟悉自动布局。如果要将按钮放在整个视图的中心,请单击图钉并垂直单击中心并水平居中。enter image description here然后单击问题并单击高度和宽度。现在您的按钮将位于整个视图的中心,并且具有固定的宽度和高度。如果您有关于自动布局的任何问题,那么您可以使用图像进行评论。

答案 2 :(得分:0)

你做错了是你没有设置正确的约束。 正如其他人所指出的那样:

  • 确保您已设置所需的最小约束数。

  • 如果您的元素大小是内在的 - 如UILabelUIImageViewUIButton - 您只需要2个其他约束(对于X和Y位置,作为宽度和高度已由组件intrinsicContentSize方法)给出。

  • 如果您自己强制尺寸,则至少需要4个约束。 (例如:顶部+底部+左+右,或中心X +中心Y +宽度+高度)

  • 如果在故事板中设置约束,则应该看到警告和错误(约束与故事板布局无关时的警告,以及无法解决约束集时的错误:您没有足够或太多的约束)。信息故事板警告,有这里的帮助。

  • 如果创建“垂直居中”或“居中水平”约束,请确保常量等于零。 (在你的截图中,它等于12)

您应该列出您设置的所有约束,并确保它们一起使用。一旦你对这些感到满意,你会发现XCode不会简单地“忽略”你的约束。