在锚点和中心使用乘数可以吗?
对我来说,至少对于一开始来说,这根本没有任何意义,但后来我进行了深入研究,发现这确实有效。

所以让我陷入困境。
告诉我我是否错了。

1)乘以1 =尾随乘数?我已经看到,乘数为0.1的开头表示内部有10%(基于宽度)。

2)中心乘以2 =尾随?假设中心意味着尾随/ 2或前导* 0.5?

据我了解,乘数实际上是基于轴乘以宽度/高度。

这意味着以下约束是等效的吗?

C1.axis = C2.axis * M + C C1.axis = C2.axis + axisLength * M + C?

因此,乘数只是将宽度或高度的倍数相加?

更新:

因此,使用已接受答案中的信息来清除问题。

CenterX_or_Y = Width_or_Height / 2
Trailing - Leading = Width  (in therms of size)
Bottom   - Top     = Height (in therms of size)

当您在前导/尾随/顶部/底部实际使用乘数时,实际上是在上述尺寸(宽度或高度)上使用乘数。

最佳答案

在大小上使用乘数非常简单...我希望我的子视图为其视图的宽度的80%,所以我只用0.8的乘数来设置等宽

但是,在前导/尾随/居中/等位置使用乘数时,可能会造成混淆。

从苹果的Auto Layout Guide:

ios - 在 anchor 上实际使用乘数可以吗?-LMLPHP

因此,举例来说:

Red Leading is set to Blue Trailing, Constant 8, Multiplier 1
Blue Leading is at 0, and width is 100

Red's Leading will be (1.0 x 100) + 8 = 108

不过要清楚一点,蓝色的拖尾与其宽度不同。

假设Blue的Leading在50上?如果其宽度为100,则尾随将为150,因此:
Red's Leading will be (1.0 x 150) + 8 = 158

现在,将Blue的Leading重新设置为0,但让我们将Multiplier更改为0.75
Red's Leading will be (0.75 x 100) + 8 = 83

并且,如果Blue的Leading为50,则Blue的Trailing为150:
Red's Leading will be (0.75 x 150) + 8 = 120.5

只需参考公式即可使事情变得简单:
item1.attribute = multiplier * item2.attribute + constant

这是一个直观的例子,需要澄清。所有标签均为100x40,每个绿色标签均受Green.Leading = Blue.Trailing + Constant:8

ios - 在 anchor 上实际使用乘数可以吗?-LMLPHP

对于集#1,乘数为1.0-对于集#2,#3和#4,乘数为0.5

集合1,蓝色的Leading是0,绿色的Multiplier是1……这是通常看到的,很明显-绿色是蓝色的尾数的8点,即(Blue.Leading + Blue.Width),或者
1.0 * (0 + 100) = 100
100 + 8 = 108

第2组,蓝色的Leading仍然是0,但是绿色的Multiplier是0.5 ...因此,绿色距离蓝色的尾随距离为8点,即(Blue.Leading + Blue.Width),* 0.5或
0.5 * (0 + 100) = 50
50 + 8 = 58

设置3,蓝色的前导现在为80,绿色的乘数仍为0.5 ...因此,绿色距蓝色的尾随为8点,即(Blue.Leading + Blue.Width),* 0.5或
0.5 * (80 + 100) = 90
90 + 8 = 98

第4组看起来很奇怪。 Blue的Leading现在为200,Green的Multiplier仍为0.5 ...因此Green距离Blue的尾随为8点,即(Blue.Leading + Blue.Width),* 0.5或
0.5 * (200 + 100) = 150
150 + 8 = 158

如我们所见,在第4组中,绿色最终变成了蓝色的左边,这是正确的,但并不是所有的直观性。

关于ios - 在 anchor 上实际使用乘数可以吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52780013/

10-10 20:33