自动布局和线性方程
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 度。
我正在尝试通过研究自动布局和线性方程 y = m.x + b
。
这是我正在使用的一个简单练习:我有 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 度。