我是否需要在UIImage imageNamed中添加@ 3x后缀?

时间:2014-11-07 09:10:57

标签: ios objective-c iphone uiimage

Apple提供iPhone 6iPhone 6 plus设备。

  • 我有三张照片,包括@2x@3x。当我使用UIImage imageNamed:加载图片时。
  • 我是否需要在文件末尾添加@3x广告?我的命名惯例是pic.pngpic@2x.pngpic@3x.png
  • 我是否需要首先检查正在运行的设备iPhone 6然后[UIImage imageNamed:@"pic@3x.png"][UIImage imageNamed:@"pic"],设备是否会自动为正确的设备使用正确的图像?

3 个答案:

答案 0 :(得分:10)

Sol: [UIImage imageNamed:@"pic"]已足够[UIImage imageNamed:@"pic.png"]

<强>原因:

  • 设备自动检测pic@2x.png&amp;一旦您添加到项目中pic@3x.png
  • 如果您未添加任何pic@2x.pngpic@3x.png图片,则表示设备会自动加载pic.png。
  • 因此,您只需在项目中添加此行[UIImage imageNamed:@"pic"]

答案 1 :(得分:2)

[UIImage imageNamed:@"pic"]

就够了。

如果找到带有此后缀的图片,则会自动添加后缀(iPhone 4到6的@ 2x和iPhone 6 +的@ 3x)。

答案 2 :(得分:0)

TLDR:如果您支持iOS 6/7,请确保包含@ 2x图像,或者在imageNamed中指定“* @ 3x”。

如果您支持旧版iOS(6/7),则需要执行以下两项操作之一。

第一个选项:包括图像的所有版本(普通,2x,3x)。优选的。

第二个选项:如果你只包含一个@ 3x图像,[UIImage imageNamed"pic"]将在iOS 8上运行良好(根据需要将3x图像缩小到2x或1x大小),但是,自iOS 7以来它在iOS 7上失败从来没有意识到@ 3x。您应该使用[UIImage imageNamed"pic@3x"]