是否需要添加 @2x 或 @1x 图像

Posted

技术标签:

【中文标题】是否需要添加 @2x 或 @1x 图像【英文标题】:Is adding @2x or @1x image required 【发布时间】:2019-05-14 15:15:27 【问题描述】:

如果我有@3x 图像并且我需要做的只是缩小该图像以创建@2x 和@1x,为什么我需要添加它们?我看到一些 UIImage 函数只是缩小设备上的@3x 图像,而如果@2x 图像不存在,其他 UIImage 函数会失败。我发现每次缩小这么多图像并将它们添加到项目中非常耗时。有解决办法吗?

编辑:为了更清楚,我的问题是 UIImage imageWithContentsOfFile 如果我只提供@3x 而不提供@2x 则返回 nil。但 UIImage imageNamed 有效。这是正常的,还是我做错了什么?

【问题讨论】:

您只需要一张图片。使用@1x / @2x / @3x 允许您提供不同分辨率的图像资源如果您愿意 您不需要 1x 图像,因为您的应用不太可能支持此类旧设备。大多数设备都是 2x 设备。 请通读 Apple 的这份文档Image Size and Resolution 【参考方案1】:

不确定您需要做什么或如何使用缩放的图像...或者即使它们是照片或图标。

如果您将这些图像用作图标,请将它们添加到资产文件夹。然后可以在故事板上的控件中按名称引用资产。很简单。

为了创建按钮,假设是一个 40x40 的按钮,我在 Inkpad 中创建了 40 x 40 的图标并将结果保存为 PDF 文件。然后我把它放在一个图像资产中,然后只为一张图像选择选项。由于是矢量图,所以放大效果很好。

如果您在多个应用程序中使用相同的图像,我建议您创建一个名为 Common_Images 的资产文件夹,然后将该文件夹从一个应用程序复制到另一个应用程序。非常快速和简单,

我编写了一个快速简单的应用程序,让用户选择一张照片,输入 1 倍的宽度和高度,按下一个按钮就完成了!在模拟器上执行此操作可以让我快速将这些新缩放的图片直接拖放到 Xcode 中的图像资源中。快速简单。

【讨论】:

以上是关于是否需要添加 @2x 或 @1x 图像的主要内容,如果未能解决你的问题,请参考以下文章

拥有@2x 图像资源而没有@1x 资源

获取设备图像比例(例如@1x、@2x 和@3x)

IOS标签栏图片大小和分辨率

人机界面指南 - 自定义标签栏图标的大小?

@2x、@3x 和 @4x 图像的媒体查询

访问资产目录中具有特定分辨率的图像