我在项目中添加.bundle了一些填充了一些图像的文件夹.这是正确的参考这个图像直接写像?:
[UIImage imageNamed:@"imageInBundle.png"];
Run Code Online (Sandbox Code Playgroud)
哪个是访问和使用这些图像的最佳方法?
我在iOS版本4的参考文献中读到了+使用object 的方法imageNamed,UIImage不需要文件扩展名.
从UIImage课堂参考:
特别注意事项.
在iOS 4及更高版本中,不需要文件名来指定文件扩展名.在iOS 4之前,您必须指定文件扩展名.
但似乎这只适用于PNG文件.
如果我的代码是:
[UIImage imageNamed:@"test"];
Run Code Online (Sandbox Code Playgroud)
test.pngtest.jpg.对我来说这是一个很大的问题,因为我需要保持一个动态的图像加载(我不知道在运行时,如果我想加载图像png或jpg).
你能帮帮我吗?
谢谢.
[UIImage imageNamed:filename]
Run Code Online (Sandbox Code Playgroud)
此方法仅在设备上返回null.
我知道它已知问题,这通常是因为模拟器不区分大小写.我尝试过这里提出的解决方案:UIImage imageNamed返回nil
但没有任何事情可以帮助我.
案例很简单:我有4个文件名:Bar@2x~ipad.png,Bar @ 2x~iphone.png,Bar~ipad.png,Bar~iphone.png.所有这些都在项目中,并选中了目标复选框.
NSLog(@"%@",[UIImage imageNamed:@"Bar"]);
Run Code Online (Sandbox Code Playgroud)
那行代码让我对设备无效,我真的不知道我现在做错了什么.
我们收到这些错误消息:
无法加载带有标识符"com.company.OurResourceBundle"的包中从nib引用的"iconStatus"图像.
基本上,我们在xcassets文件夹中放置了一堆图像(适用于非捆绑加载的情况).xcassets和nib文件打包到资源包中.
当应用程序启动时,
问题与" 我如何从NSBundle中的Assets.car(xcassets的编译版本)加载图像有关? ",但我们不使用CocoaPods.
SO上已经有几个答案关于"imageNamed:"不起作用,但没有一个包含我特别的皱纹:
我是nil从iOS 7上的"imageNamed:" 获得的,但同样的版本适用于iOS 8.
显然,所有内容都可以正常连接,因为它可以在iOS 8上运行,但它可以在iOS 7上持续返回nil大范围(可能是24打)的图像.值得注意的是,我将资产移动到AssetCatalog开始的时间.iOS 7上的资产目录是否有一些不寻常的行为需要考虑?
以下是一些细节,基于本网站上类似问题的答案:
到目前为止,大多数的SO的答案是,将阻止其工作的错误可言.任何人都可以帮助进行仅适用于iOS 8的图像调用吗?