【问题标题】:When using Asset Catalogs, is it possible to load images from a specific folder?使用资产目录时,是否可以从特定文件夹加载图像?
【发布时间】:2014-09-29 05:32:29
【问题描述】:

我第一次尝试在 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.

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

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

【问题讨论】:

    标签: objective-c uiimage xcode5 xcasset


    【解决方案1】:

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

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

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

    【讨论】:

    • 你的意思是imageNamed?我找不到对imageWithName 的引用。希望避免这种情况,因为我使用的图像不太可能再次加载,所以我不希望它们被缓存。此外,这意味着在资产目录中创建文件夹几乎完全没用,对吗?
    • 是的。资产目录中的文件夹的唯一用途是帮助您更快地找到图像。
    猜你喜欢
    • 1970-01-01
    • 2011-06-20
    • 2013-08-04
    • 1970-01-01
    • 2016-12-28
    • 2019-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多