相对布局。约束方程解释

Posted

技术标签:

【中文标题】相对布局。约束方程解释【英文标题】:Relative layout. Constrain equation explanation 【发布时间】:2016-06-09 08:43:31 【问题描述】:

阅读相对布局中的约束,我发现了以下内容:

在数学上,任何约束都可以用以下等式表示:

Y = 乘数 * X + 常数

X 和 Y 是视图的属性,可以是左、右、上、下、前导、尾随、宽度、高度、centerX、centerY 或基线。

有人能解释一下吗?

【问题讨论】:

【参考方案1】:

我想在示例中解释效果最好,所以:

假设您有一些视图位于它的视图控制器中,因此它距左侧 10 个点。这意味着它的前导设置为 10。现在,这个视图有我们想要固定到它的左侧的子视图。所以我们设置了前导约束来匹配父前导。假设我们将此约束的常量设置为 0(无间隙)并且不修改乘数(默认为 1),则此视图的左侧位置设置为:

childLeading = parentLeading * 乘数 + 常数

即:

childLeading = 10 * 1 + 0 = 10

所以左侧的子视图与父视图的位置相同。

修改约束的常量,我们将子视图更向左移动 f.e.常量设置为 8 会导致:

childLeading = 10 * 1 + 8 = 18

因此,视图位于距其父级左边缘 8 点的位置。

我猜你可以在乘数的情况下遵循这个逻辑(它比常数使用得少得多)

【讨论】:

以上是关于相对布局。约束方程解释的主要内容,如果未能解决你的问题,请参考以下文章

如何约束相对布局以在屏幕上采用最大指定宽度

是否可以定义相对于未知 UIViews 的自动布局约束?

一个iOS约束布局的小技巧

一个iOS约束布局的小技巧

Android-ConstraintLayout(约束布局)-Centering/Circular and with Bias了解一下

约束布局ConstraintLayout加快布局速度