我看过一些文章和讨论,例如 one here 和 Here,关于新 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 中有所不同。
查看有关此here in this thread的更多信息
因此,iPhone 6 使用与 iPhone 4、5 和 5S 相同的 @2x 图像,因为它具有相同的 PPI,而 iPhone 6 plus 使用 @3x。
更新:
苹果的图标图像大小的新链接。
https://developer.apple.com/ios/human-interface-guidelines/graphics/image-size-and-resolution/
https://i.stack.imgur.com/X2PMj.png
是的,这是真的,这是 Apple 提供有关 icon's or image size 的官方文档
https://i.stack.imgur.com/6sTql.png
您必须设置 images for iPhone6 and 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
For more info regarding Images and it's resolution this is best ever helpful post
要为控件设置图像大小,您可以设置 1x @2x 和 @3x,如下所示:
https://i.stack.imgur.com/9E2Bs.gif
我在一个示例项目中尝试使用标准、@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 中的模拟器中的通缉行为还是错误/错误。
我通过制作一个示例项目进行了测试,所有模拟器似乎都使用 @3x images ,这令人困惑。
在您的资产目录中创建不同版本的图像,以便图像本身告诉您它是什么版本:
https://i.stack.imgur.com/BQaLP.png
现在依次在每个模拟器上运行应用程序。您会看到 3x 图像仅在 iPhone 6 Plus 上使用。
如果图像是使用它们的名称从应用程序包中绘制的(例如 one.png、one@2x.png 和 one@3x .png) 通过调用 imageNamed:
并分配给图像视图。
(但是,如果您将图像分配给 Interface Builder 中的图像视图,则会有所不同 - 2x 版本在双分辨率设备上被忽略。这可能是一个错误,显然是 pathForResource:ofType:
中的一个错误。)
ios 将始终尝试获取最佳图像,但会回退到其他选项.. 因此,如果您的应用程序中只有普通图像并且它需要@2x 图像,它将使用普通图像。
如果您只将@2x 放入项目中并在普通设备上打开应用程序,它将缩小图像以显示。
如果您以 ios7 和 ios8 设备为目标并希望获得最佳质量,则需要 @2x 和 @3x 用于电话和普通,@2x 用于 ipad 资产,因为没有非视网膜手机,也没有@3x ipad。
也许最好从矢量图形在应用程序中创建资产...检查 http://mattgemmell.com/using-pdf-images-in-ios-apps/
不定期副业成功案例分享