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

How to change the height of the view based on width

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

我找不到任何可以解决这个问题的约束。

听说宽高比可以做到这一点。但是试了好像不行

一般是怎么实现的?

将纵横比的概念与自动版式结合使用,以根据高度和宽度更新您的视图。使用乘数更新纵横比。这是宽高比分配的快照以及如何更新它的乘数

乘数逻辑
1:1 = 图片的高度和宽度将保持不变
2:1 = 你的宽度或高度是彼此的 2 倍并创建一个矩形。这里高度为2x或宽度为2x,这取决于约束中的第一项和第二项。

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

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

尝试以下简单方法..

1) 给出 LeadingTrailing 约束 如下图。

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

3) 现在根据您在设计中想要的 Ratio 设置 UIViewHeight,然后 select 设置 view 只是 Drag and Drop 在相同的 view 和 select Aspect Ratio 上。 XCode 会自动得到 Ratio Constraint。供参考。见下图。