从xcassets加载UIImage

我试图从Image.xcassets文件夹加载启动图像,但无济于事。 还有其他的答案 (和这一个 )对于声称回答它,但他们的主要解决scheme,简单地加载像这样的图像

UIImage *image = [UIImage imageNamed:@"Default@2x"]; 

对我返回零。

文件名被正确命名,项目被设置为使用资产。

有没有人有任何想法,我怎么做,或者我可能做错了什么?

提前致谢。

编辑:

我的资产文件夹的截图

编辑2:我的最终代码:

 -(void) loadSplashImage{ if ([self isiPad]){ self.imageViewSplash.image = [UIImage imageNamed:@"Default-Portrait"]; } else{ if (self.view.frame.size.height == 480){ self.imageViewSplash.image = [UIImage imageNamed:@"Default"]; } else if (self.view.frame.size.height == 568){ self.imageViewSplash.image = [UIImage imageNamed:@"Default-568h"]; } else if (self.view.frame.size.height == 667){ self.imageViewSplash.image = [UIImage imageNamed:@"Default-667h"]; } } 

}

请注意,它只适用于肖像。

你不必在你的名字中指定图像的大小。 它会自动加载最适合运行应用程序的设备的大小。 所以你的代码应该是。

 UIImage *image = [UIImage imageNamed:@"Default"]; 

其中default是来自xcassets的资源的名称,即您在左侧列表中看到的名称。

这是获取LaunchImage名称的方法。

Xcode 5和资产目录:如何引用LaunchImage?

从info.plist获得图像名称( [[NSBundle mainBundle] infoDictionary]

你应该有2个文件:

(1)Default.png(或任何其他图像格式) – 非视网膜

(2)Default@2x.png – 视网膜

现在,要获得这个图像,您不必在文件名的末尾使用@ 2x。 只使用该图片资源的名称。