Ios 从xcassets加载UIImage

Ios 从xcassets加载UIImage,ios,objective-c,uiimage,xcasset,Ios,Objective C,Uiimage,Xcasset,我正在尝试从image.xcsets文件夹加载启动映像,但没有成功。还有其他的s(和),声称要回答这个问题,但他们的主要解决方案是,简单地加载这样一个图像 UIImage *image = [UIImage imageNamed:@"Default@2x"]; 为我返回零 文件名命名正确,项目设置为使用资源 有人知道我是怎么做的,或者我可能做错了什么吗 提前谢谢 编辑: 编辑2:我的最终代码: -(void) loadSplashImage{ if ([self isiPad]){

我正在尝试从image.xcsets文件夹加载启动映像,但没有成功。还有其他的s(和),声称要回答这个问题,但他们的主要解决方案是,简单地加载这样一个图像

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"];

其中默认值是
xcasets
中的资源名称,即您在左侧列表中看到的资源名称。

您应该有两个文件:

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

(二)Default@2x.png-视网膜


现在,要获得此图像,您不必在文件名末尾使用@2x。仅使用该映像资产的名称。

以下是获取LaunchImage名称的方法


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

您必须提供资产名称而不是图像名称。我还尝试添加Default.png(现已过时)检查答案:谢谢Jelly,但我还是得到了零。我们发布一个你的
xcassets
的屏幕截图,这样我们就可以看到你必须把它们放在xcode中,因为如果你把它们放在一个文件夹中,它们就不会被拾取。你的xcode项目中应该有一个
assets.xcassets
文件。打开它,你的资源就会进入。在这里查看更多关于资产目录的信息。在XCode中添加对它们的引用就可以做到这一点。非常感谢。谢谢NSPratik,但我仍然得到零。请尝试使用“默认”以外的名称