我在视图控制器(VC)上添加了一个uiview,尝试设置它的宽度等于VC视图的宽度。
我设定和预期的内容:
我在iphone 6 plus上获得了什么:
我试图改变前导空间和尾随空间的常量而没有帮助。 iphone 6+ autolayout有什么特别之处吗?
此处的视图设置为“任意宽度x常规高度”
------- 2016年12月新增 对于像我这样对此案感到困惑的人: UIView中有一个layout margin属性,它是一个UIEdgeInsets(8,8,8,8)。这就像css padding。
当视图的边缘靠近超视图的边缘并且preservesSuperviewLayoutMargins属性为true时,可能会增加实际的布局边距以防止内容与superview的边距重叠。
默认边距为每边八个点。
如果视图是视图控制器的根视图,则系统设置和 管理利润。顶部和底部边距设置为零 点。侧边距取决于当前的尺寸等级,但是 可以是16或20分。您无法更改这些边距。
答案 0 :(得分:53)
尝试在添加约束时删除检查边距到边距。请看一下:
检查对边距的约束及其结果
现在,在删除约束并将Constrain的约束重新添加到未选中的边距之后,结果如下:
答案 1 :(得分:19)
Sharon的答案非常有效,但您不必删除现有的约束来解决问题。您可以编辑现有约束以消除无关边距:
答案 2 :(得分:0)
编辑现有约束以删除无关的边距将不起作用。您必须删除现有约束并添加新约束,以保留约束未选择的边距。
答案 3 :(得分:0)
我的“完成”按钮遇到了同样的问题。问题是我的View(完成按钮)位于基本视图层次结构中,因此我将视图带回根视图(视图控制器的视图)。并相应地设置约束。
我的案例设置约束Pin->取消选中约束到保证金 - >底部,前导,尾随(约束值= 0)
确保视图层次结构不应该遵循以下方式。(子视图可能不是剪切视图)。
答案 4 :(得分:-1)
我在iPhone 6 plus模拟器中遇到了这个错误。但是在6 plus设备中,这个bug并没有发生。这可能只是一个6加模拟器的错误。