按组区分资产目录中的图像

Differentiating images in an asset catalog by their group

有没有什么方法可以使用资产目录组来有效地命名具有共享名称的多个图像?

例如,如果我有多个名为 Foo 的图像,它们位于不同的组中,是否可以通过 imageNamed: 指定我想要的图像(即类似 UIImage(named:"Group1.Foo")).

显然我可以自己为所有图像创建唯一的名称,但如果有一种方法可以利用组来为我做这件事就好了。

Select 资产目录中您要为其添加命名空间的每个文件夹。转到名称 "Provides Namespace" 下的文件夹属性和 select。这应该为您的最终资产目录正确设置子目录。

您可以通过编辑每个文件夹的 Contents.json 手动执行此操作。您将以正确的格式添加以下内容。

"properties" : {
      "provides-namespace" : true
}

视觉说明

(基于Xcode 10.1)

1) Select 资产目录文件夹。

*如果"Provides Namespace"为假,文件夹为黄色。

2) 确保检查器面板可见



3) 在检查器面板中,select 属性检查器。选中 "Provides Namespace" 复选框。



请注意,文件夹图标变为蓝色表示 "Provides Namespace" 为真。



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

let image = UIImage(named: "Icon/Menu")