iOS 自动布局更改前导和尾随空格

Posted

技术标签:

【中文标题】iOS 自动布局更改前导和尾随空格【英文标题】:iOS autolayout changes leading and trailing space 【发布时间】:2014-10-19 04:23:46 【问题描述】:

我在自动布局方面遇到了一些问题,希望你们中的一些人可以帮助我 =)。

我将 UIView 添加到空视图控制器,如下所示:

然后我为前导和尾随空格添加约束,如下所示:

结果如下:

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

当我在 iPhone 5 模拟器上运行该应用程序时,它看起来不错:

但是,当我在 iPhone 6 Plus 模拟器上运行该应用程序时,它会在左侧和右侧添加空白:

无论屏幕有多大,我都不希望灰色 UIView 从左侧到右侧有任何空间。我该如何解决?谢谢!

【问题讨论】:

只需单击约束右侧的编辑按钮,然后将值从 -16 更改为 0。-16 与将约束设置为边距而不是边缘有关视图。 如果我将它们更改为 0,那么 Xcode 会自动调整视图大小,如下所示:i.imgur.com/HjQi2dV.png 如果我将它们设置为 0,然后手动设置从边缘到边缘的框架,那么我会收到关于放错视图的警告,并且在运行时它会调整视图的大小,这里是截图:i.imgur.com/954Jz1O.png 【参考方案1】:

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

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

查看以下链接以获取有关边距的更多信息。 Editing Auto Layout Constraints

【讨论】:

这行得通,感谢清晰的解释和链接。【参考方案2】:

您可以清除视图上的所有现有约束,并在 Any*Any 模式下,将所有 4 个空间的约束添加到 superview,它们是Leading、Trailing、Top、Bottom。那么不管屏幕多大,它都会和屏幕等宽。

【讨论】:

它仍然会调整它们的大小。我只是添加这样的约束:i.imgur.com/wUiFX31.png,结果是:i.imgur.com/4hqUuKD.png 注意-16,grayview的原点x应该是0,宽度应该是600。 是的,我也试过了,它仍然会调整它的大小。截图:i.imgur.com/IlnyGhi.png 注意图中的黄色箭头,表示视图放错了位置。尝试清除所有约束并在帖子中再次执行上述操作。 当我将 -16 更改为 0 时,会出现黄色箭头。不可能有从边缘到边缘的灰色视图,将前导和尾随约束设置为 0,并且看不到黄色警告。

以上是关于iOS 自动布局更改前导和尾随空格的主要内容,如果未能解决你的问题,请参考以下文章

iphone 6 plus 上自动布局的意外结果

如何使用自动布局移动标签并为更改设置动画?

如何在 xcode 自动布局中使对象自动调整大小?

iOS 8 自动布局 - 动态调整 4 个方形视图的大小

如何使用自动布局平均分配 UIButton

iOS 自动布局错位视图的错误