当涉及到乘数时,它取决于你正在处理的约束条件。你有一个与父视图前导边距相连的视图前导约束。当常量为0时,这会给你一个8点间隙。当你改变乘数时,你将影响到这个间隙。这就是为什么当你做2:1时,你会看到它向右移动8个点。本质上是将原始的8点间隙乘以2。如果你做1:2,它将从8点变成4点,本质上将原始的8点边距除以2。 现在当你看Adrians的例子时,他只把它乘以1:2,那么这怎么能让它变成整个屏幕的一半呢?这是因为他在高度约束上这样做了。视图最初是父视图的全尺寸,但当他将其乘以1:2时,他表明他希望它成为其原始高度的1/2。给你那个最终结果。 所以重要的是要理解乘数可能似乎根据情况而有所不同,但这是因为它取决于你正在处理的约束条件。 这里有一个更好的答案详细介绍了这个问题:
Understanding multiplier in auto layout to use relative positioning
链接详细介绍了如果你想要使前导边缘为10%,后缘为90%,则需要根据后缘设置两个约束。 将后面的约束乘以0.9,前导约束乘以0.1。 关于你关于等间隔视图的问题,你应该使用堆栈视图。它们是为这种情况而设计的,所以你不必处理所有的约束条件。你只需要为堆栈视图设置约束并相应地配置即可。