【问题标题】:Confused about the direction of iOS constraints对iOS约束的方向感到困惑
【发布时间】:2014-05-05 16:10:45
【问题描述】:

我一直在阅读 Matt Nueberg 的 iOS 7 编程一书,并且正在努力理解约束方向的内容。在本书第 28 页的multiplier, constant 部分,作者指出:

第一个属性设置为结果。

所以我读这个的方式是,当有两个项目约束时,项目 1 是根据项目 2 的值派生或依赖的。

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

然后选择Center Horizontally:

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

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

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

【问题讨论】:

    标签: ios ios7 xcode5 uistoryboard nslayoutconstraint


    【解决方案1】:

    您确实以正确的方式拖动关联(这就是菜单选项列出 centre in container 的原因)。

    第一个项目是应用约束的项目。当您想在其容器中居中视图时,约束将应用于容器,而不是子视图。

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

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

    【讨论】:

      猜你喜欢
      • 2017-03-22
      • 2020-11-21
      • 2018-10-13
      • 1970-01-01
      • 2018-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-27
      相关资源
      最近更新 更多