2016-04-22 87 views
4

我试图从Image.xcassets文件夹加载启动图像,但无济于事。还有其他answer S(和this one)上,以便主旨回答,但他们的主要解决方案,简单地加载图像,像这样从xcassets加载UIImage

UIImage *image = [UIImage imageNamed:@"[email protected]"]; 

返回nil我。

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

有没有人有任何想法我如何做到这一点或我可能做错了什么?

在此先感谢。

编辑:

screenshot of my assets folder

编辑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"]; 
    } 
} 

}

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

+0

你必须给资产名称而不是图像名称。 –

+0

我也尝试将Default.png(现已过时)添加到资产中。 –

+0

检查答案:http://stackoverflow.com/a/32945986/3202193 –

回答

6

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

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

其中default是xcassets的资源,你的莱夫特赛德列表上看到的一个名称。

+0

谢谢果冻,但我仍然无法获得零。 –

+0

好吧,发布'xcassets'的截图,以便我们看到它的样子 – Jelly

+0

完成并编辑了帖子。 –

0

你应该有2个文件:

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

(2)[email protected] - 视网膜

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

+0

谢谢NSPratik,但我仍然无法获得。 –

+0

尝试使用除“默认”以外的名称 – NSPratik

+0

我尝试使用Icon,而不是零。 –