只为 iPhone 上的所有版本提供 3x 图像是不是足够?

Posted

技术标签:

【中文标题】只为 iPhone 上的所有版本提供 3x 图像是不是足够?【英文标题】:Is it sufficient to supply 3x image only for all versions on iPhone?只为 iPhone 上的所有版本提供 3x 图像是否足够? 【发布时间】:2015-01-06 17:23:23 【问题描述】:

在 Xcode 中仅提供 3 倍分辨率的图像(例如视图或按钮)以使其在 iPhone 5,6 和 6plus 设备上看起来不错是不够的 (即在图像集中留下 1x 和 2x 空白)

我的理由是 1x 图像在 6 plus 上可能看起来模糊,但 3x 图像在 5 上应该看起来不错

基本上我是在问这样的问题,以便我可以与我的平面设计师交流,他应该可以为所有图像提供单一尺寸而不是三种尺寸

【问题讨论】:

我不明白这个原因:如果您提供 1x、2x 和 3x,至少 2x 将被较新的 iPhone 使用。如果我们能够只提供 3x 并让 Xcode 自动缩小它可能会很方便,但我个人认为它还不是必需的功能。请注意,App Store 应用程序目前不限于 iPhone 5+。无论如何,如果这是唯一的问题,您可以为您的设计师或您自己快速创建一个实用程序来复制缩放(并在需要时重命名)所有图像。 如果你的应用程序不能在非视网膜 iPad 上运行,我相信你不应该提供任何 @1x 图像。从 ios7 开始不支持非视网膜 iPhone。 @Fogmeister,在 iOS7+ 中: 1. 不支持非视网膜 iPod Touch; 2. iPhone4S 有视网膜显示器, 3. 非视网膜iPad 以视网膜模式运行iPhone 应用程序,您无法缩小-因此:对于iOS7+ 中的iPhone 应用程序,@1x 图像完全可以忽略。 【参考方案1】:

关于 2x 资产的问题被多次询问和回答,但答案并没有真正改变(但当我通过手机发帖时,很难找到重复的问题)。

如果您发送的资产具有比目标设备更高的比例因子,它们将正常显示。但是实时缩小它们会产生性能成本——它们使用更多内存,上传到 GPU 需要更长的时间,它们需要 GPU 时间来渲染。其中一些成本微不足道,而另一些则不然。 (请记住,2x 图像是 1x 图像数据的 4 倍,3x 图像是 2x 图像数据的 2.25x。)它们会为您应用中的每张图像加起来。

最重要的是,具有较低缩放因子的设备是那些用于缩减规模的 CPU/GPU/内存资源较少的设备。

那么,该怎么办?好吧,如果您不想让您的艺术家处理多个比例因子,只需在发货前订购 3 倍图稿并在 Photoshop(或见鬼,甚至预览)中自行缩放。它可能看起来不像你的艺术家为每个尺寸调整它那样好,但它看起来和实时缩放一样好,没有运行时性能成本。

或者,使用 Xcode 6,您可以将 PDF 放入资产目录中,Xcode 会在构建时自动为每种尺寸生成 PNG。 (这是一项 Xcode 功能,而不是 iOS 功能,因此即使您的目标是 iOS 7,它也可以使用。)

【讨论】:

【参考方案2】:

这个想法的问题在于,在 iOS 8 中仍然支持 iphone 4S,并且它的纵横比与其他所有 iPhone 不同。它以 2x 的 320x480 渲染,因此创建适合它的图像不会看起来有颗粒感。如果您使用 3 倍比例(每页为 1920x1080)并缩小 4 英寸和 4.7 英寸屏幕的尺寸,则其他 3 种屏幕尺寸将起作用。该应用程序可能需要 2 个故事板(一个用于 3.5 英寸,另一个用于其他 3 个屏幕尺寸)。在这种情况下,自动调整大小不会真正起作用,除非您更改 UIImage 的图像,因为它会在保持相同宽度的同时缩短长度。

编辑:更改了 iPhone 6+ 的屏幕尺寸以考虑 1.15 倍的缩小比例 并更改了渲染因子以匹配下面的评论

【讨论】:

iPhone 4s 是 2x Retina 显示屏,而不是 1x。最后一款非 Retina iPhone 是 3GS,从 iOS 7 开始不受支持。

以上是关于只为 iPhone 上的所有版本提供 3x 图像是不是足够?的主要内容,如果未能解决你的问题,请参考以下文章

如何在自动布局中设计 3x3 按钮支持所有使用 Storyboard 的 iPhone 设备

手机加载优化 - 2x3x图

iPhone上的VFP单元矩阵乘法问题

iPhone XC概念图曝光 廉价版iPhone X!

如何只为 iPhone X 在顶部添加额外的高度?

我需要在 UIImage imageNamed 中添加 @3x 后缀吗?