相同的图像切片在8和8 PLUS上显示非常不同

时间:2019-03-06 08:16:58

标签: ios xcode interface-builder xcasset

以下是 Sample Project

问题

我想使图像具有固定的上半部分和拉伸的下半部分,以使其在任何高度均可正确调整大小。

然后我在Assets.xcassets中使用图像切片来实现这一目标。可以适当调整图像的大小,但是在不同的大小下显示会略有不同。

原始图像

Screenshot 1

图像切片

只需从垂直中心切出图像即可。

Screenshot 2 Screenshot 3

故事板

内容模式设置为缩放以填充

高度限制等于其宽度限制乘以0.8

Screenshot 4 Screenshot 5

结果

我认为它应该在不同的设备上显示几乎相同的图像。因为除了图像资产(2x,3x)以外,其他所有东西都是相同的。

但是,结果不是我期望的。 iPhone 8 PLUS上的图像似乎有点压缩。

Screenshot 6

最后

我正在将Mojave与Xcode 10.1(10B61)配合使用。

任何人都知道原因是什么。以及如何使图像正确地垂直拉伸?

1 个答案:

答案 0 :(得分:0)

它看起来“压扁”的原因是图像被水平拉伸。

您的切片允许顶部保持恒定的高度,而不是恒定的(或成比例的)宽度。

在这里,我使用您的原始图像 而不进行任何分割...每个图像视图的高度相同(201点),因此您知道它不是垂直缩放,而是不同的宽度,因此您可以查看水平拉伸的结果:

enter image description here

您可能想尝试的是将原始图像仅剪切到顶部。设置该图像视图上的约束以保持比例,然后使用纯色图像视图(或仅使用具有匹配背景色的UIView)作为下部的“垂直拉伸”部分。