ios - 受宽度和纵横比限制的 View ,不更新高度

标签 ios swift xcode nslayoutconstraint

所以在我的 main.storyboard 上,我有一张图片和一些按钮。所有这些都是居中的。我想做的是缩放所有内容,以便它在不同设备上从透视/比例的角度看起来完全相同。也就是说,如果 iPhone 8 Plus 比 iPhone 8 大 10%,我希望 Plus 上的按钮和图像大 10%。

我关注了这个link它告诉我将对象的宽度限制为屏幕宽度的一定百分比(比如 25%)。然后,他说要限制宽高比,这样当宽度根据屏幕尺寸变化时,高度也会随之变化。

我为我的按钮和 ImageView 都这样做了。当我查看一个对象的尺寸并在通过 iPhone 8 Plus 和 iPhone SE 查看它时,宽度发生变化,但高度没有变化。很明显宽度正在适应屏幕尺寸,但高度不是。 (注意,所有按钮和图像都会发生这种情况)。我应该只限制高度并摆脱纵横比限制吗?或者有什么方法可以修复纵横比,以便它确实改变高度?

如果您有任何问题或意见,请告诉我,期待回复!

编辑:根据要求,这里有 2 张约束图片。一是宽高比约束,二是宽度约束。

Aspect Ratio Constraints

Width constraint

最佳答案

看看这个例子:

enter image description here

两个按钮的宽度限制为 View 的 25%(0.25 * 宽度)。

在为 iPhone SE 设计时,它们都是 80 x 30

按钮 B 具有 8:3 的宽高比约束

在 iPhone 8+ 上查看时

enter image description here

您看到按钮 A 拉伸(stretch)到 103.33 的宽度,但它的高度保持在 30。

按钮 B 拉伸(stretch)到 103.33 的宽度,但是因为它有宽高比限制,所以它的高度也会拉伸(stretch)。在这种情况下,从 30 到 38.67。

关于ios - 受宽度和纵横比限制的 View ,不更新高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52042908/

相关文章:

ios - 使用委托(delegate)清理数组

ios - 如何以编程方式滚动我的整个 View ,包括图像

ios - 如何在 Swift 中每隔 X 秒重复一次?

ios - 如何使用 UIImage RenderingMode AlwaysTemplate 防止粗体图像

iOS:在 UIActivityViewController 中禁用 WhatsApp?

ios - Swift 中的@IBOutlet 变量

ios - Unity IOS 集成

ios - 应用安装失败 : Unknown Error Xcode 7

ios - 无法在包 : 'NSBundle ERROR 中加载 NIB

ios - 链接器命令失败,退出代码为 1(使用 -v 查看)