gpt4 book ai didi

ios - 没有@3x 图像和某些图像为 JPG 时的应用程序细化

转载 作者:可可西里 更新时间:2023-11-01 05:20:03 27 4
gpt4 key购买 nike

为了即将对我的一个应用程序进行更新,我已将所有图像资源打包到 Assets 目录中。

但是,目前我的大部分图像都没有@3x 版本。我已经检查过模拟器,并且在 iPhone 6 Plus 上使用了 @2x 版本。

我不介意这种行为有两个原因:

  1. 结果对于我正在使用的图像来说已经足够好了
  2. 只有 50% 的用户在使用 iOS 9。如果我添加 @3x 图片,我的应用程序的大小对于那些使用旧操作系统的用户来说会猛增

虽然图像在 iPhone 6 plus 的模拟器中正确加载,但我有点担心在我存档我的应​​用程序时会发生什么。特别是,我担心使用 App Thinning 的 iPhone 6 Plus 用户会得到一个没有任何图像的应用程序:)

所以,我有两个问题:

  1. 如果我不提供@3x 图像,iPhone 6 plus 将加载@2x在我的更新在 App Store 上线之后?
  2. 我还会从 App Thinning 中受益吗,因为 @2x 和@3x 显示不会下载@1x 图像(反之亦然)?还是 App Thinning 在这种情况下不起作用,用户将获得相同的 Assets ,而不管他们的设备屏幕如何?

这些都是微不足道的问题,但我无法在网上任何地方找到有关当您不遵循 Apple 的指导方针,不在 Assets 目录中提供 @3x 图像但您的应用程序仍可用于 iPhone 6 + 时会发生什么的信息。此外,我的一些图片是 JPG 格式,这增加了额外的不确定性,因为它不是 iPhone 的理想格式。

在此先感谢您的帮助!

最佳答案

我使用 Matt 提出的程序执行了几个额外的测试:

  1. 当最低部署目标是 iOS 6 时,没有 Assets.car产生。 [UIImage imageNamed:] 为 JPG 图像返回 nil,除非“.jpg”扩展名作为图像名称的一部分提供
  2. 当最小部署目标是 iOS 7 时生成 Assets.car 但它仅包含那些导入到 Assets 目录中的图像作为PNG。所有 JPG 都在 Assets.car 之外复制。 [UIImage imageNamed:] 为 JPG 图像返回 nil,除非提供“.jpg”扩展名作为图像名称的一部分。
  3. 当最低部署目标是 iOS 8 时,Assets.car 包含所有图片。它的大小是 13MB。 [UIImage imageNamed:] 即使未指定“.jpg”扩展名,也能正确返回 JPG 图像。当包含“.jpg”扩展名时,图像也能正确加载
  4. 当最低部署目标是 iOS 9 Assets.car 包含所有图片。它的大小是 11.5MB。 [UIImage imageNamed:] 即使未指定“.jpg”扩展名,也能正确返回 JPG 图像。当包含“.jpg”扩展名时,图像也能正确加载

我用过 image extractor tool Matt 建议从这些 Assets 中提取图像。我只能从配备 Retina 的设备的文件中导出,我可以确认所有图像都具有正确的分辨率(即只有视网膜尺寸,忽略 iPad 特定图像)。然而,该工具将所有这些都保存为 PNG 格式,因此文件夹的最终大小总是大于 Assets.car。

最令人惊讶的是,案例 3 和案例 4 的文件夹大小相同 (39.4MB)。而且,图像似乎完全相同。所以,我真的很想知道那里发生了什么,因为在这些情况下,Assets.car 的大小相差 2MB。

总而言之,我们仍然不确定这种测试方法是否可以用来准确模拟 App Thinning 行为。因此,如果有人对此有亲身经历,那么如果他们能分享它就太棒了。

但是,假设为特定设备导出 AdHoc 会产生与 App Store 执行的实际 App Thinning 相同的结果,我们可以得出结论:

  1. 只有当部署目标是 iOS 7 或更高版本时,应用程序瘦身才会开始
  2. JPG 图像的应用瘦身仅适用于从 iOS 8 的最低部署目标开始
  3. [UIImage imageNamed:] 仅当通过 Assets 目录正确处理 JPG 图像时,才在不提供“.jpg”扩展名的情况下正确返回 JPG 图像。如前所述,只有当最低部署目标是 iOS 8 或更高版本时才会发生这种情况
  4. [UIImage imageNamed:] 如果指定了“.jpg”扩展名,则始终加载正确的图像。

最后两个结论似乎与这个问题无关,但我在 Stack Overflow 上发现了几个关于如何使用 Asset Catalogs 正确加载 JPG 图像的相互矛盾的观点。有些人声称您可以在不提供“.jpg”扩展名的情况下加载它们,而其他人则提示这种方法不起作用。我认为上面的 3 和 4 详细解释了这种情况下发生的情况以及人们得到不同结果的原因。

关于ios - 没有@3x 图像和某些图像为 JPG 时的应用程序细化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33250182/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com