自动布局和线性方程

Autolayout and linear equation

我正在尝试通过研究自动布局和线性方程 y = m.x + b

进一步推动我的 iOS 开发学习

这是我正在使用的一个简单练习:我有 SafeArea View 并在其正上方添加了一个 greeView。我标记了我感兴趣的四个约束(#1 为顶部约束,#2 为尾部约束,#3 为底部约束,#4 为前导约束)

因此,例如,通过对第一个方程应用线性方程,它将是:

(1) : greenView.Top = 1.safeArea.top + 20

但对于第二个约束显然不是:

(2) : greenView.Trailing = 1.safeArea.Trailing + 20

但是,它应该是:

(2) : safeArea.Trailing = 1.greenArea.Trailing + 20

我想我缺少一些东西来理解第二个约束对齐背后的逻辑。有什么提示吗?谢谢

约束流需要一些隐式顺序,以便您了解 "before" 和 "after" 的含义。

Apple 选择从上到下,从前导(在 LTR 语言环境中为左)到尾随(右)。

您希望绿色视图的后缘为 20 "before" 父视图的后缘。

有两种方法可以指定它;正如您在 (3) 中所看到的那样,约束表明 superview trailing 比 green trailing 多 20。

您也可以说 greenView.trailing = 1.safeArea.trailing-20 以获得您想要的结果。

如果您有 (2) 的约束,那么绿色视图将距离屏幕右边缘 20 度。