1

我正在尝试从文件LaunchImage中的图像集中加载图像.xcassets,但我不想使用 use imageNamed:,因为它会浪费内存,并且图像只需要在初始启动期间显示几秒钟。

我已经尝试了多种方法,但到目前为止,我只能使用imageNamed:.

这有效:

[UIImage imageNamed:@"LaunchImage-700-568h.png"]

这不起作用(返回null):

[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"LaunchImage-700-568h" ofType:@"png"]]

有没有办法在不将资源显式添加到目标(资产文件除外)的情况下做到这一点?谢谢!

4

1 回答 1

2

看起来你的问题的答案是否定的。

根据 XCAssets文档

资产目录中的每个集合都有一个名称。您可以使用该名称以编程方式加载集合中包含的任何单个图像。要加载图像,调用平台特定的类方法,传入包含图像的集合的名称。操作系统将从最适合当前比例因子的集合中加载图像。iOS 的平台方法是 imageNamed:。对于 OS X,平台方法是 imageNamed:

所以我们必须使用[UIImage imageNamed:]方法从 iOS 上的 XCAssets 目录中加载图像。

在此处查看类似的问题和答案。

于 2015-03-09T21:20:46.940 回答