使用资产目录时,是否可以从特定文件夹加载图像?

时间:2014-08-06 10:13:07

标签: objective-c uiimage xcode5 xcasset

我第一次尝试在Xcode 5中使用图像资产目录并遇到一些问题。以前我只是将图像文件夹(包含子文件夹)引用/链接到项目中,并将完整路径名传递给 + [UIImage imageWithContentsOfFile:] 以访问我需要的内容,但我想我d尝试使用带有文件夹的资产目录。

作为背景,我有一组500个左右的项目,以及几种类型的相关图像(图标,个人资料等)。我的想法是能够在Images.xcassets中有一个“ itemIcons ”文件夹,“ itemProfiles ”文件夹,依此类推。然后,每个文件夹将具有仅由参考编号引用的资产(例如,“ 001 ”,“ 002 ”,等等)。然后我计划使用 + [UIImage imageWithContentsOfFile:] 来根据需要加载所需的图像文件(我特别是在非缓存加载方法之后,所以不使用 imageNamed )。不幸的是,我似乎找不到任何方法来加载特定文件夹中的特定图像。

我也是通过这样做获得编译器警告:

Asset Catalog Compiler Warning
The image set name "001" is used by multiple image sets.

这似乎意味着我无法为此目的使用资产目录文件夹,并且必须返回使用外部引用的图像。

那么,是否可以以编程方式从资产目录中的特定文件夹加载图像?

1 个答案:

答案 0 :(得分:3)

使用资产目录与使用imageWithContentOfFile:不同。

您在资产目录中存储的图片会在构建时复制到设备,而使用imageWithContentOfFile加载的图片是您在期间保存到Documents文件夹的图片运行时(例如:通过生成图像或下载图像)。

您可以使用文件夹和图像集在资产目录中创建特定结构,但是您将使用imageNamed:方法加载它们,因此两个图像集不能具有相同的名称。