Autolayout:为什么这些相同的约束不同?

时间:2014-10-02 15:38:12

标签: ios autolayout

我正在学习自动布局。我目前正在添加一个简单的约束:视图和超级视图之间的0px边距。

显然,有两种方法可以添加此约束:

首先,单击xib编辑器的右下方按钮,选择左边距,然后单击添加n个约束,如给定的屏幕截图所示:first way to add constraint

这是第一个约束属性。它具有16px的恒定余量:
enter image description here

第二种方式,在Xcode菜单中选择:编辑器> Pin>超级视野的领先空间:
The second way

现在,我的约束有0px,但它也有效:视图根据其超级视图进行了很好的调整

这是我的第二个约束属性:
enter image description here

第一个问题:为什么我的第一个约束左右边距 16px ?我正在开发一个全新的项目!如果我设置0px,我的视图周围会有一些额外的空间!

第二个问题:这两个约束有什么区别?什么是最好的方法?

由于

1 个答案:

答案 0 :(得分:1)

你已经给出了答案。对superview的约束与对superview的边距的约束不同。

如果您考虑如何在代码中形成这些约束,这可能是最简单的。以下是您可以使用的属性:

https://developer.apple.com/Library/ios/documentation/AppKit/Reference/NSLayoutConstraint_Class/index.html#//apple_ref/c/tdef/NSLayoutAttribute

如您所见,有Right和RightMargin。将子视图的右边缘固定到其超级视图的右边与将其固定到超级视图的RightMargin不同。