引用资产目录中文件夹中的图像

Fog*_*ter 15 objective-c uiimage ios asset-catalog

在资产目录中,您可以创建文件夹.

在文件夹内,所有图像名称必须是唯一的.

如果您有一个图像被调用,myImage并且您尝试命名另一个图像,myImage那么它将自动重命名为myImage-1.

但是,如果您有两个文件夹,那么您可以在不同的文件夹中使用相同名称的图像.

那么,必须有一种方法可以参考这些吗?

有谁知道如何通过资产目录中的文件夹和图像名称引用图像?

Ada*_*dam 15

我花了很多时间,但终于弄明白了.这里回答.复制如下.

选择资产目录中要为其添加命名空间的每个文件夹.转到文件夹属性,然后选择名称"提供命名空间".这应该正确设置最终资产目录的子目录.

您可以通过编辑每个文件夹的Contents.json手动完成此操作.您可以使用正确的格式添加以下内容.

"properties" : {
      "provides-namespace" : true
}
Run Code Online (Sandbox Code Playgroud)

  • 来自 [文档](https://developer.apple.com/library/ios/documentation/Xcode/Reference/xcode_ref-Asset_Catalog_Format/FolderStructure.html):“全名包括任何组或精灵图集文件夹的名称被标记为提供命名空间。例如,如果组文件夹哺乳动物包含一个图像集`Llama.imageset`,则图像集的完全限定名称是`mammals/Llama`。” (2认同)
  • 至少 xcode 7 在文件夹设置中有一个标志。感谢您的解决方案。 (2认同)

Mob*_*Dan 7

视觉指示

(基于Xcode 10.1)

要使路径唯一地标识资产目录图像,请将文件夹的“ Provides Namespace”属性设置为true

1)选择资产目录文件夹。

在此处输入图片说明

*如果“提供名称空间”为,则文件夹为黄色false

2)确保“检查器”面板可见

在此处输入图片说明

3)在“检查器”面板中,选择“属性”检查器。选中“提供命名空间”复选框。

在此处输入图片说明

请注意,文件夹图标变为蓝色,表示“提供命名空间”为true。

在此处输入图片说明

在代码中引用图像时,请记住包括名称空间。

let image = UIImage(named: "Icon/Menu")
Run Code Online (Sandbox Code Playgroud)