从 xcassets 加载 UIImage

Loading a UIImage from xcassets

我正在尝试从 Image.xcassets 文件夹加载启动图像,但无济于事。 SO 上还有其他 answers (and ) 声称可以回答它,但他们的主要解决方案是简单地加载像这样的图像

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

returns 对我来说没有。

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

有没有人知道我是怎么做到的或者我可能做错了什么?

提前致谢。

编辑:

编辑 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 中您在左侧列表中看到的资源的名称。

您应该有 2 个文件:

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

(2) 默认@2x.png — 视网膜

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

获取LaunchImage名称的方法如下。

Xcode 5 & Asset Catalog: How to reference the LaunchImage?

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