Iphone X的长宽比问题

时间:2018-08-02 15:26:14

标签: ios swift uiview nslayoutconstraint

我通过使用纵横比创建约束设置来在故事板上开发了大部分UI。现在,我发现在iPhone X上,所有具有比率的约束看起来都是拉伸的和不正确的。用最适合所有iPhone尺寸的宽高比设置约束的最佳解决方案是什么?

2 个答案:

答案 0 :(得分:0)

我不确定其他人会怎么做,但是为了解决这种情况,我做了一个size(高度和宽度)约束,而不是aspect ratio约束。这可能会导致它在不同屏幕上的大小略有不同,但是长宽比保持不变。

例如, 与其在方形视图上设置aspect ratio约束,不如尝试 将heightwidth的约束设置为相等的值,例如250250

答案 1 :(得分:0)

您正在将“长宽比”与“百分比”混淆。

如果您希望背景图像在尺寸更改时不显得“拉伸”,则需要给它提供宽高比+百分比大小,或者使用其他图像。

例如:

  • iPhone SE屏幕为320 x 568,因此高度为50%(宽度为100%)的图像为320 x 284

  • iPhone 8屏幕为375 x 667,因此高度为50%(宽度为100%)的图像为375 x 333.5

  • iPhone X屏幕为375 x 812,因此高度为50%(宽度为100%)的图像为375 x 406

很明显,您的图片不能为320 x 284 375 x 333.5 { {1}}都在同一时间。

您可能不需要将图像视图设置为屏幕高度的50%,而是需要将其限制为屏幕的整个 width 并赋予375 x 406约束。它不会在每个设备上覆盖相同的百分比高度(不要忘了iPad的尺寸),但是看起来不会拉长。