对iOS约束的方向感到困惑

对iOS约束的方向感到困惑,ios,ios7,xcode5,uistoryboard,nslayoutconstraint,Ios,Ios7,Xcode5,Uistoryboard,Nslayoutconstraint,我一直在阅读Matt Nueberg的编程iOS 7书籍,我很难理解约束的方向。在本书第28页的“乘数,常数”一节中,作者指出: 第一个属性设置为结果 所以我的理解是,当有两项约束时,第1项基于第2项的值派生或依赖 所以我有一个视图和一个子视图(按钮),我想水平居中按钮。因此,我排列视图和按钮,然后控制从按钮到父视图的拖动: 然后选择水平居中: 然后,如果选择该约束,我会在右侧的属性检查器中看到以下内容: 这将superview显示为项目1,按钮显示为项目2。这是否意味着它将尝试调整sup

我一直在阅读Matt Nueberg的编程iOS 7书籍,我很难理解约束的方向。在本书第28页的“乘数,常数”一节中,作者指出:

第一个属性设置为结果

所以我的理解是,当有两项约束时,第1项基于第2项的值派生或依赖

所以我有一个视图和一个子视图(按钮),我想水平居中按钮。因此,我排列视图和按钮,然后控制从按钮到父视图的拖动:

然后选择水平居中

然后,如果选择该约束,我会在右侧的属性检查器中看到以下内容:

这将superview显示为项目1,按钮显示为项目2。这是否意味着它将尝试调整superview的中心以匹配按钮的中心?那不是我想要的。还是我误解了第1项和第2项的含义?或者这是不是意味着我将控件向后拖动,你应该从依赖项拖动到依赖项,而不是像我那样从依赖项拖动到依赖项


我假设顺序确实重要,即哪一项是第1项,哪一项是第2项。因为有一个菜单选项可以将两者互换。如果它只是一个解算器,对调整的内容没有偏好,那就没有必要了。

您确实以正确的方式拖动了关联(这就是为什么在容器中列出了菜单选项
center

第一项是应用约束的项。如果要将视图置于其容器的中心,则约束将应用于容器,而不是子视图

假设您正在应用约束以将视图的顶部链接到顶部布局参考线的底部。在这种情况下,约束应用于视图,因此它是项目1,布局指南是项目2

引擎只是一个解算器,但在某些情况下,顺序很重要。如果两个项目被标记为相等,那么哪一个是第一个并不重要。但是如果约束有一个乘数,那么顺序就很重要——就像纵横比约束一样,顺序决定了什么是宽度,什么是高度