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

时间:2014-09-22 10:52:16

标签: ios autolayout iphone-6-plus

我在视图控制器(VC)上添加了一个uiview,尝试设置它的宽度等于VC视图的宽度。

我设定和预期的内容: xcode setting and expected result

我在iphone 6 plus上获得了什么: what i got on ip6+

我试图改变前导空间和尾随空间的常量而没有帮助。 iphone 6+ autolayout有什么特别之处吗?

此处的视图设置为“任意宽度x常规高度”

------- 2016年12月新增 对于像我这样对此案感到困惑的人: UIView中有一个layout margin属性,它是一个UIEdgeInsets(8,8,8,8)。这就像css padding。

  

当视图的边缘靠近超视图的边缘并且preservesSuperviewLayoutMargins属性为true时,可能会增加实际的布局边距以防止内容与superview的边距重叠。

     

默认边距为每边八个点。

     

如果视图是视图控制器的根视图,则系统设置和   管理利润。顶部和底部边距设置为零   点。侧边距取决于当前的尺寸等级,但是   可以是16或20分。您无法更改这些边距。

5 个答案:

答案 0 :(得分:53)

尝试在添加约束时删除检查边距到边距。请看一下:

检查对边距的约束及其结果

Constrain to margins result

现在,在删除约束并将Constrain的约束重新添加到未选中的边距之后,结果如下:

Constrain to margins unchecked result without Constrain to margins

答案 1 :(得分:19)

Sharon的答案非常有效,但您不必删除现有的约束来解决问题。您可以编辑现有约束以消除无关边距:

Before applying solution Solution step After applying solution

答案 2 :(得分:0)

编辑现有约束以删除无关的边距将不起作用。您必须删除现有约束并添加新约束,以保留约束未选择的边距。

答案 3 :(得分:0)

我的“完成”按钮遇到了同样的问题。问题是我的View(完成按钮)位于基本视图层次结构中,因此我将视图带回根视图(视图控制器的视图)。并相应地设置约束。

我的案例设置约束Pin->取消选中约束到保证金 - >底部,前导,尾随(约束值= 0)

enter image description here

确保视图层次结构不应该遵循以下方式。(子视图可能不是剪切视图)。

enter image description here

答案 4 :(得分:-1)

我在iPhone 6 plus模拟器中遇到了这个错误。但是在6 plus设备中,这个bug并没有发生。这可能只是一个6加模拟器的错误。