我在一个地方使用乘数来改变视图的高度宽度,具体取决于屏幕。当我使用宽高比时也会发生同样的事情。所以,我有点困惑,我不能完全理解乘数和宽高比之间的区别。任何人都可以解释它。我也想了解优先级常数。我什么时候应该使用它?
答案 0 :(得分:0)
两者都取得了相同的结果。在某些地方,您不希望根据元素的高度限制UI元素的宽度,反之亦然。
在这种情况下,你可以定义任何一个约束,并保持另一个约束未定义或使其成为不等价约束。(例如:设置UILabel宽度,高度可以根据内容动态变化。在这里你赢得了#t; t要考虑宽高比)。
答案 1 :(得分:0)
在Interface Builder中工作时,Aspect Ratio
实际上只是表达Multiplier
的便捷方式。它实际上被“转换”为乘数。
您可以在调试时通过检查约束的.multiplier
属性来确认。如果您将视图的宽度设置为60
,将乘数设置为1:2
(导致自动布局高度为120
),则.multiplier
的实际值将为{{ 1}}。
因此,在我看来,这取决于感觉更自然。
如果我希望视图占另一个视图宽度的90%,我更有可能将乘数设置为0.5
---这与将其设置为{{1}的结果完全相同}}。
但是,如果我希望视图保持比例比例为3比2,我更有可能将乘数设置为0.9
而不是9:10
。
当您使用“非简单”值时,使用比率也很方便。也就是说,很容易理解3:2
的比率与1.5
相同。但是,如果我的图像的原始大小为3:2
,我想使用这些值来保持比例呢? 1.5
比281 x 60
更容易理解。
而且,虽然它们是可互换的,但在将对象约束到自身时使用Ratio可能可能更直观 - 例如我希望我的视图宽度为其自身高度的2倍,因此281:60
- 并在将一个对象约束到另一个对象时使用乘数 - 例如我希望我的视图宽度为其超视图宽度的75%,因此.multiplier = 4.68333339691162
。