【问题标题】:Save space: Batch resize down all @2x images for old iPhones/iPads/iPods on first launch节省空间:在首次启动时批量调整旧 iPhone/iPad/iPod 的所有 @2x 图像大小
【发布时间】:2011-02-15 10:57:07
【问题描述】:

这个问题: iphone 4 - loading images x old devices

我们最终是否会用双重内容填充我们的应用程序,即用户必须将 2x 大小和 1x 大小的图像下载到他的设备上,但最终只会使用其中一个,而另一个将是浪费下载时间等。

所以我想,在某些情况下,只需用高分辨率图像 (@2x) 填充您的应用程序,并在应用程序启动时(在应用程序委托中,在显示窗口之前......或其他什么),就可以了,对于低分辨率屏幕设备,您可以批量缩小所有 @2x 图像。当按比例缩小时,您将这些文件保存到设备的文档和/或缓存文件夹中,并删除原始的 @2x 图像。怎么样,有人已经做了吗?这有什么缺点吗?苹果会因为我这样做而在某个地方打我吗?等等

【问题讨论】:

    标签: ios retina-display


    【解决方案1】:

    您绝对可以批量缩放这些@2x 图像并将缩放后的文件保存到文档文件夹中。这将节省下载时间,并使用与将所有内容捆绑到应用程序中相同的空间量,但会增加一些复杂性。但是,我认为删除原始的@2x 图像是不可能的,或者即使这样做也是值得的——有可能在设备之间移动应用程序和用户数据。一旦你拥有它们,最好根据分辨率选择正确的数据。而且我认为 Apple 没有太多理由会因为你这样做而责骂你。

    哦,当然,如果你真的有很多数据,大约数百兆字节,那么做两个版本的应用程序可能是有意义的(例如,在 Rage 的脉络中)。

    【讨论】:

    • 好吧,我想保持在 20 MB 以内,我可以将华丽的数据填充到极限,然后支持低分辨率屏幕也没有问题。我想对于某些用途,调整 gfx 的大小可能会使它们看起来很糟糕,但我会试一试。哦,我尝试了即时调整大小,比如用太大的 UIImage 填充 UIImageView,将 contentmode 设置为自动缩小。但至少在 iPhone 3G 上性能明显不佳。
    • 我将您的答案设置为已接受的答案。这行得通,最大的缺点是您提到的“增加的复杂性”。我希望这适用于未来的更新。确实不可能从包中删除图像,但也不是真的需要。
    【解决方案2】:

    我现在要回答我的想法。

    • 进行批处理时,您必须将图像保存到缓存/文档文件夹或类似文件夹中。这意味着,低分辨率设备仍然无法找到 IB 中指定的任何图像,可能使用普通的 imageNamed 等也无法找到它们(尚不确定)。可能是对此的修复,或者我可能不得不在 viewDidLoad 中手动添加图像。闻起来很乱。可能会工作,有一个好的解决方案......

    • 应用更新可能会很麻烦。由于应用程序更新发布速度很慢(对不起,Apple,是的,更新发布速度很慢)。通过更新,您可能希望删除缓存文件夹,以确保通过更新更改/删除的旧图像不会仍然留在缓存中。需要通过某种版本控制来监督缓存。就像检查当前的应用程序版本,以及是否已为此版本完成缓存。如果没有,刷新缓存,一种流程。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-17
      • 2018-12-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多