我添加一个"对齐"约束,但Xcode添加" pin"约束自动布局

时间:2015-01-11 22:06:29

标签: xcode6 autolayout nslayoutconstraint

当我们添加约束时,我们可以选择" Align"自动布局工具栏中的按钮或" Pin"按钮。

在我的故事板中,如果我添加一个新的对齐约束"底边"在scrollview和他的容器之间。

Align

此约束的图标是2个方格和一条线。

但之后,在我的滚动视图的约束列表中,图标不同:

Pin

图标是" Pin"图标。

我不明白为什么。

还有一个问题,我认为它是相关的:"对齐底部"之间的区别是什么?和"底部空间" ?

1 个答案:

答案 0 :(得分:4)

Pin Align 只是抽象,以便更容易理解您的设置。实际上,约束是两个对象的属性之间的关系。您在Interface Builder中使用align或pin指定的内容将转换为NSLayoutConstraint对象。

以编程方式完成后,没有 pin align 选项,您只需指定对象及其属性(.Top.Bottom.CenterX等),关系(.Equal.GreaterThanOrEqual.LessThanOrEqual),常量和乘数。

例如,以下是如何对齐两个按钮的底部:

NSLayoutConstraint(item: button1, attribute: .Bottom, relatedBy: .Equal, toItem: button2, attribute: .Bottom, multiplier: 1.0, constant: 0.0)

如果这两个对象是兄弟姐妹,那么他们的底部被认为是对齐。如果一个对象是另一个对象的子视图,则认为它是底部空间。两者都只是一个视图的.Bottom与另一个视图的.Bottom之间的关系。

单击约束并在“属性”检查器中查看约束时,您会看到用于创建NSLayoutConstraint的值。

Align button bottoms