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

And*_*rew 0 iphone objective-c

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

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

  2. 我想在我的应用程序中保存图像,如果我检测到他们正在使用视网膜显示屏手机并保存图像结尾,@2x.jpg它会像导入的图像一样工作,它会自动转换为那个在视网膜设备上?

  3. 如果我要引用一个不存在的图像,但是存在一个@2x.jpg版本,那么默认情况下它会不会出现?

els*_*ooo 5

  1. 使用[UIScreen mainScreen].scale,它是2.f一个视网膜屏幕.
  2. 我不确定,但我认为它也会@2x在这里自动检测到反转(只要你UIImage用来加载它们).
  3. 如果它是一个视网膜屏幕,它首先会看到@2x-version,如果它不存在,它将回退到默认版本.如果该版本不存在,它将返回nil.然而,非视网膜屏幕永远不会看向@2x-version.

你称之为x2.jpg-file,但它不是:

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