从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。 只使用该图片资源的名称。