Ios 从xcassets加载UIImage
我正在尝试从image.xcsets文件夹加载启动映像,但没有成功。还有其他的s(和),声称要回答这个问题,但他们的主要解决方案是,简单地加载这样一个图像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]){
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,但我仍然得到零。请尝试使用“默认”以外的名称