2014-10-19 67 views
16

我有一些自动布局问题,希望有些人可以帮助我=)。iOS自动布局更改前后空格

我一个UIView添加到空视图控制器,例如: enter image description here

然后,添加约束前缘和后空间,这样的:

enter image description here

这导致这样的:

enter image description here

我不明白为什么它将它们设置为等于-16.0。如果我将这些值更改为0,则Xcode会抱怨灰色UIView的宽度。

当我运行在iPhone 5模拟器的应用程序,它看起来不错: enter image description here

然而,当我运行在iPhone 6 Plus上的模拟器应用它的左边和右边增加了白色空间:

enter image description here

我不希望灰色的UIView从左边有任何空间,不管屏幕有多大。我该如何解决它?谢谢!

+0

只需点击编辑按钮这是在限制的右侧,和值改变从-16到0 -16与约束设置为保证金,而不是边做的看法。 – rdelmar 2014-10-19 04:39:42

+1

如果我将它们更改为0,则Xcode会自动调整视图的大小,如下所示:http://i.imgur.com/HjQi2dV.png – almas 2014-10-19 04:43:12

+0

如果将它们设置为0,然后手动将边框设置为边框,那么我会看到错误的视图警告,并且在运行时无论如何都会调整视图的大小,下面是截图:http://i.imgur.com/954Jz1O.png – almas 2014-10-19 04:46:46

回答

37

双击约束并将其打开。选择第一个或第二个项目并取消选择“相对于边距”。然后将您的常量设置为0.

Xcode显示-16,因为它正在计算关于边距而不是边缘的空间。

请查看以下链接了解更多关于边距的信息。 Editing Auto Layout Constraints

enter image description here

+0

这工作,感谢清楚的解释,并链接。 – almas 2014-11-06 05:42:42

+0

非常感谢! – 2016-02-24 05:18:56

0

您可以清除视图上的所有现有约束,并且在任意*任何模式下,为超视图的所有4个空间添加约束,这些约束是前导,尾随,顶部,底部。然后无论屏幕有多大,它都会与屏幕具有相同的宽度。

+0

它仍然调整它们的大小。我只是添加这样的约束:http://i.imgur.com/wUiFX31.png,其结果如下:http://i.imgur.com/4hqUuKD.png – almas 2014-10-19 05:02:55

+0

注意-16,grayview的原点x应该是0,其宽度应该是600. – gabbler 2014-10-19 05:13:48

+0

是的,我也试过,它仍然调整它。屏幕截图:http://i.imgur.com/IlnyGhi.png – almas 2014-10-19 05:17:55