图片资源和 iOS 手机的问题

Issues with image assets and iOS phones

我想要一个在登录屏幕上显示我的徽标的 60x60 UIImageView。

在我的图像资源中,我在 1x 中有 60x60 .png,在 2x 中有 120x120 .png。但是,每当我显示这些图像时,似乎都有点不对劲。似乎有丝毫但明显的模糊。

我决定将 120x120 图像作为 iPhone 6 Plus 的 3x 图像进行测试,并震惊地发现它看起来很完美,一点也不模糊。这对我来说似乎并不合算,因为 120x120 像素不是 60x60 的 3 倍。

也许我只是不明白图像资源是如何工作的,但我如何才能正确地将其应用于所有网格?

当您将 UIImageView 的内容模式设置为 UIViewContentModeScaleToFill 时,图像会自动调整大小以适合 UIImageView,这会引入一些非像素完美伪像。

将模式设置为 UIViewContentModeTopLeft 这样它就不会被缩放,您可能会看到 UIImageView 的大小(以磅为单位)与图像不完全相同。

检查 UIImageView 的属性、autoresizingmask 或 autolayout 或您的代码,以确保 UIImageView 的尺寸正确。

此外,请确保您使用的是正确的文件 naming convention (e.g. image1@2x.png) and loading the image without specifying the suffix using imageNamed: or imageForResource:。如果 iOS 没有找到当前屏幕比例的图像并且必须缩放图像,您会得到相同的伪像。

您可以尝试更改内容模式,也许可以尝试 UIViewContentModeCenter。

另一种选择是检查故事板,如果您正在使用约束,则不要在 UIImageView 上设置任何 width/height 约束。这将使图像视图调整大小以适合内部的资产集。