141

我看过几篇文章和讨论,比如这里这里关于新 iPhone 将使用 @3x 图像进行显示的图像分辨率。这是真的吗?

那么这是否意味着我们必须保留三个图像?例如,我有一张 50 X 50 的图片,我是否必须保留 3 张图片来优化新 iPhone 的外观?

  • 正常 (50 X 50)
  • @2x - 视网膜 (100 X 100)
  • @3x - 视网膜高清 (150 X 150)

或者新手机会只使用@2x 图像而没有@3x 之类的东西吗?

我通过制作一个示例项目进行了测试,所有模拟器似乎都使用@3x 图像,这令人困惑。

编辑

这是更多信息

  • 3GS(163 ppi,所以使用正常)
  • 4、4s、5 和 5s(326 ppi 所以我们使用@2x)
  • 6(326 ppi 所以看起来它会使用@2x)
  • 6 加(这里是 401 ppi 的混乱)

编辑

根据 Tsob 和 nitin 给出的答案,我将@3x 图像添加到我的项目中。

信息编辑

我看到很少有用户对为什么 iPhone 6 使用 @2x 图像即使它具有更高的分辨率感到困惑,原因是

iPhone 6 可能具有不同的分辨率,但具有相同的每像素英寸密度 (PPI)

  • 分辨率涉及像素的绝对数量。
  • 密度(又名每英寸像素 - PPI)涉及每英寸的相对像素数,这在 iPhone 6 和以前的 iPhone 中是相同的,但在 iPhone 6 plus 中有所不同。

在此线程中查看有关此内容的更多信息

因此,iPhone 6 使用与 iPhone 4、5 和 5S 相同的 @2x 图像,因为它具有相同的 PPI,而 iPhone 6 plus 使用 @3x。

4

4 回答 4

102

更新:

苹果的图标图像大小的新链接。

https://developer.apple.com/ios/human-interface-guidelines/graphics/image-size-and-resolution/

在此处输入图像描述


是的,这是真的,这是 Apple 提供有关图标或图像大小的官方文档

在此处输入图像描述

您必须为 iPhone6 和 iPhone6+ 设置图像

对于 iPhone 6:

750 x 1334 (@2x) for portrait

1334 x 750 (@2x) for landscape

对于 iPhone 6 Plus:

1242 x 2208 (@3x) for portrait

2208 x 1242 (@3x) for landscape

有关图像及其分辨率的更多信息,这是有史以来最有用的帖子

要为控件设置图像大小,您可以设置 1x @2x 和 @3x,如下所示:

在此处输入图像描述

于 2014-09-11T09:20:31.690 回答
54

我在一个示例项目中尝试使用标准、@2x 和@3x 图像,iPhone 6+ 模拟器使用@3x 图像。所以看起来有@3x 图像要完成(如果模拟器实际上复制了设备的行为)。但奇怪的是,所有设备(模拟器)在项目结构中似乎都使用这个@3x 图像,iPhone 4S/iPhone 5 也是如此。
Apple 在潜在的@3x 结构上缺乏沟通,而他们要求开发人员发布他们的 iOS8 应用程序非常令人困惑,尤其是在模拟器上看到这些结果时。

**从 Apple 网站编辑 **:也可以在 Apple 开发人员空间的“iOS 8 上的新功能”部分找到此内容:

支持新的屏幕比例 iPhone 6 Plus 使用新的 Retina HD 显示屏,屏幕比例为 3.0。为了在这些设备上提供最佳体验,请添加为此屏幕比例设计的新艺术作品。在 Xcode 6 中,资产目录可以包含 1x、2x 和 3x 大小的图像;只需添加新的图像资源,iOS 将在 iPhone 6 Plus 上运行时选择正确的资源。iOS 中的图像加载行为也可以识别@3x 后缀。

仍然不明白为什么所有设备似乎都加载了@3x。也许是因为我使用的是常规文件而不是 xcassets ?将很快尝试。

进一步测试后编辑:好的,iOS8 似乎对此进行了讨论。在 iOS 7.1 iPhone 5 模拟器上进行测试时,它正确使用了 @2x 图像。但是当在 iOS 8 上启动它时,它在 iPhone 5 上使用 @3x。但不确定这是 iOS8 GM 或 Xcode 6 中的模拟器中的通缉行为还是错误/错误。

于 2014-09-11T07:25:24.230 回答
10

I have tested by making a sample project and all simulators seem to use @3x images , this is confusing.

Create different versions of an image in your asset catalog such that the image itself tells you what version it is:

enter image description here

Now run the app on each simulator in turn. You will see that the 3x image is used only on the iPhone 6 Plus.

The same thing is true if the images are drawn from the app bundle using their names (e.g. one.png, one@2x.png, and one@3x.png) by calling imageNamed: and assigning into an image view.

(However, there's a difference if you assign the image to an image view in Interface Builder - the 2x version is ignored on double-resolution devices. This is presumably a bug, apparently a bug in pathForResource:ofType:.)

于 2014-09-11T17:19:43.400 回答
2

ios 将始终尝试获取最佳图像,但会回退到其他选项.. 因此,如果您的应用程序中只有普通图像并且它需要@2x 图像,它将使用普通图像。

如果您只将@2x 放入项目中并在普通设备上打开应用程序,它将缩小图像以显示。

如果您以 ios7 和 ios8 设备为目标并希望获得最佳质量,则需要 @2x 和 @3x 用于电话和普通,@2x 用于 ipad 资产,因为没有非视网膜手机,也没有@3x ipad。

也许最好从矢量图形在应用程序中创建资产...检查http://mattgemmell.com/using-pdf-images-in-ios-apps/

于 2014-09-11T07:39:26.677 回答