【问题标题】:Stop using retina-only images停止使用仅视网膜图像
【发布时间】:2012-01-16 14:05:44
【问题描述】:

如果我执行以下操作会发生什么:

  • 我将所有非视网膜资产替换为视网膜资产
  • 我删除了项目中的所有 Retina 资产(所有 ...@2x.pngs 等)

我为什么要这样做:

  1. 未来非视网膜 iPhone 会越来越少(也因为操作系统要求最低等)
  2. 我得到了一个更轻的二进制文件
  3. 我的项目中没有太多需要单独维护的“准重复”文件。

现在:

  1. iPhone 3GS 是否会缩小图像并正确显示(当然会有一点处理开销)
  2. 即使文件名中不再有@2x 后缀,“支持视网膜”的手机是否能够正确显示图像。

【问题讨论】:

    标签: iphone objective-c ios xcode retina-display


    【解决方案1】:

    在 99% 的情况下,这都能正常工作。但是,在某些情况下,图像无法正确缩放(通常取决于 contentMode)。 我和一个做这件事的人一起工作,从来没有发现过问题,尽管我认为这是一种糟糕的做法。

    你会得到一个更轻的二进制文件,但你要求旧设备(内存更少)做更多的工作。如果您不想支持这些设备,那就不要,我认为这比给用户一个可能损坏的应用程序更好。

    有更好的方法可以减小应用中图像的大小、尽可能重复使用它们、拉伸、平铺等。

    【讨论】:

    • 只需将所有图像命名为@2x,旧的非视网膜设备就可以正常工作。无论如何,这就是我对我的应用程序的体验。只需针对 iOS 5.X 及更高版本,您只需处理 iPhone 3GS、iPad 1 和 iPod 3...
    【解决方案2】:

    3GS 和 iPhone 4 都无法正常显示图像。

    事实是 3GS 不会缩小图像。所以它不会正确显示图像。 iPhone 4 将缩放非@2x 图像(缩放两次),因此它也不会正确显示图像。

    【讨论】:

    • 真的吗?您尝试了哪些 iOS 版本?
    • iPod Touch 4 上的 iOS 5.0.1,8GB 版本。
    【解决方案3】:

    如果您决定这样做,什么都不会发生。较旧的设备会尝试,但如果您允许设备甚至运行您的应用程序,您将需要做很多工作来处理扩展问题。如果您允许旧设备安装您的应用程序,您也必须准备在旧设备上获得 Apple 的批准。如果图像在旧设备上无法正常工作,您将不会获得批准。您也说得对,正在使用的视网膜显示设备越来越少。

    但是...仍有不少非视网膜设备仍在使用中。维护两者对您的用户都有好处。是的,它为您的二进制文件增加了一点额外的分量,但是以当今各种网络上的速度,这已经不是以前那样的问题了。

    虽然选择支持哪些用户是您的权利,并且有许多开发者与您有同感,但您仍需自行决定最终要支持的用户组。如果你可以很好地用视网膜显示器画线,那就这样吧。

    我可以对你挥手,告诉你应该支持每一位用户,但我相信你已经想到了这一点。如果您只支持视网膜设备,那就去吧。如果您准备回答有关为什么支持这一设备而不支持另一设备的问题,那就去做吧。好消息是,无论你做出什么决定,你都会是对的……最终。祝你好运。

    【讨论】:

    • 你是说图像在 3GS 上无法正常显示?
    • 我自己没有测试过这个理论,但旧设备可能无法很好地显示更高分辨率的图像而无法获得批准。您唯一安全的选择是排除对旧设备的支持。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多