如何根据宽度更改视图的高度

时间:2017-03-03 10:58:28

标签: ios xcode autolayout constraints size-classes

我的视图宽度会根据设备宽度而改变,但我想根据我不希望它是静态的来改变高度。

我无法找到任何可以解决此问题的约束。

我听说宽高比可以做到这一点。但我试过它似乎没有用。

一般如何实现?

2 个答案:

答案 0 :(得分:2)

使用宽高比与AutoLayout的概念来更新您的视图的高度和宽度。宽度。使用乘数来更新宽高比。以下是宽高比分配的快照以及如何更新它的乘数

enter image description here enter image description here

乘数逻辑
1:1 =图像的高度和宽度保持不变
2:1 =您的宽度或高度相对于彼此为2倍,并创建一个矩形。此处高度为2x或宽度为2x,它取决于约束中的第一项和第二项。

优先级逻辑: 优先级分配,当特定约束与同一视图的另一个约束冲突时优先级。例如如果您设置的视图宽高比为1:1,则高度为100; 100宽度并以主视图为中心。现在您还将左(边距)/前导约束指定为固定值,如200.在这种情况下,对于不同大小的屏幕宽度,居中对齐和/或前导对齐和/或纵横比将相互冲突。此时,您需要根据您的设计调整要求更新0-1000之间的优先级。

与我分享你的设计,我会给出你的确切逻辑,如何使用这个概念

答案 1 :(得分:1)

尝试以下简单方法..

1)提供LeadingTrailing 约束,如下图所示。

enter image description here

2)现在根据您的设计设置TopBottom或其他约束。对我来说,我已经解决了Vertically Center

enter image description here

3)现在根据您想要设计的Height设置UIView Ratio,然后在同一view Drag and Drop上选择view 1}}并选择Aspect RatioXCode将自动获得Ratio Constraint。对于参考见下图。

enter image description here