停止使用仅视网膜图像

时间:2012-01-16 14:05:44

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

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

  • 我用视网膜资产替换所有非视网膜资产
  • 我删除了项目中的所有视网膜资源(所有...@2x.png等)

为什么我要这样做:

  1. 将来会有越来越少的非视网膜iPhone(也是由于操作系统要求最低等)。
  2. 我得到一个更轻的二进制文件
  3. 我的项目中没有那么多“准复制”文件,我必须单独维护。
  4. 现在:

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

3 个答案:

答案 0 :(得分:7)

在99%的情况下,这样可以正常工作。但是,有些情况下图像无法正确缩放(通常取决于contentMode)。 我和一个做过这件事的人一起工作过,从来没有注意到一个问题,虽然我认为这是一种可怕的做法。

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

有更好的方法可以减少应用中图片的大小,尽可能重复使用,拉伸,平铺等。

答案 1 :(得分:2)

3GS和iPhone 4都会不正确地显示图像。

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

答案 2 :(得分:1)

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

但是......仍有相当多的非视网膜设备仍在使用中。维护这两者对您的用户有利。是的,它为你的二进制文件增加了一些额外的重量,但是今天的速度在各种网络上都有,这不像过去那样。

虽然您有权选择支持哪些用户,并且有许多开发人员会分享您的观点,但仍需由您决定最终希望支持哪些用户群。如果你很好地用视网膜显示器画线,那就这样吧。

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