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

Hor*_*rst 27 ios autolayout iphone-6-plus

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

我设定和期望的内容: xcode设置和预期结果

我在iPhone 6 plus上得到了什么: 我在ip6 +上得到了什么

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

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

-------已添加2016年12月对于像我这样困惑的人:UIView中有一个布局边距属性,它是一个UIEdgeInsets(8,8,8,8).这就像css padding.

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

默认边距为每边八个点.

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

Sha*_*iel 53

添加约束时,尝试删除检查约束边距.这里看看:

检查边界到边距并检查其结果

限制利润 结果

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

未经检查限制边距 结果没有约束到边距

  • 谢谢你节省我的时间. (2认同)

pim*_*rme 19

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

在应用解决方案前 解决方案步骤 申请解决方案后