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 自动布局更改前导和尾随空格的主要内容,如果未能解决你的问题,请参考以下文章