@ 2x用于视网膜是否适用于所有图像,我如何测试视网膜显示?

时间:2011-08-12 13:31:48

标签: iphone objective-c

我有3个简短的问题,非常相关:

  1. 如何检测用户是否正在使用视网膜设备?

  2. 我想在我的应用程序中保存图像,如果我检测到他们正在使用视网膜显示手机并保存以@2x.jpg结尾的图像,它将如何与导入的图像一样工作,它会自动选择那个而不是视网膜设备吗?

  3. 如果我要引用一张不存在但仍有@2x.jpg版本的图片,默认情况下会不会这样做?

1 个答案:

答案 0 :(得分:5)

  1. 当它是视网膜屏幕时,使用[UIScreen mainScreen].scale2.f
  2. 我不确定,但我认为它也会自动检测@2x版本(只要您使用UIImage加载它们)。
  3. 如果是视网膜屏幕,它会先查看@2x - 版本,如果它不存在,它将回退到默认版本。如果该版本不存在,它将返回nil。然而,非视网膜屏幕永远不会显示@2x - 版本。
  4. 您将其称为x2.jpg - 文件,但不是:

    • 您的默认文件类似于background.png
    • 然后您的视网膜文件应该像background@2x.png
    • 您使用UIImage *image = [UIImage imageNamed:@"background.png"];加载图片。
    • 在大多数情况下,你不需要知道它是否是视网膜屏幕,iOS会处理这个问题。