Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Differentiating images in an asset catalog by their group

Is there any way to use asset catalog groups to effectively namespace multiple images with a shared name?

For example, if I have multiple images named Foo that are in different groups, is there a way to specify which one I would like with imageNamed: (i.e. something like UIImage(named:"Group1.Foo")).

Obviously I could create unique names myself for all images, but it would be nice if there was a way to leverage groups to do it for me.

like image 560
Kazmasaurus Avatar asked Jan 21 '15 20:01

Kazmasaurus


2 Answers

Select each folder in your asset catalog that you'd like to add a namespace for. Go to the folder attributes and select under the name "Provides Namespace". This should properly set sub-directories for your final asset catalog.

You can do this manually by editing each folder's Contents.json. You would add the following with proper formatting.

"properties" : {
      "provides-namespace" : true
}
like image 122
Adam Avatar answered Nov 07 '22 12:11

Adam


Visual Instructions

(based on Xcode 10.1)

1) Select the asset catalog folder.

enter image description here

*The folder is yellow if "Provides Namespace" is false.

2) Make sure the Inspectors panel is visible

enter image description here

3) In the Inspectors panel, select the Attributes Inspector. Check the "Provides Namespace" checkbox.

enter image description here

Notice that the folder icon turns blue indicating that "Provides Namespace" is true.

enter image description here

When referencing the image in code, remember to include the namespace.

let image = UIImage(named: "Icon/Menu")
like image 20
Mobile Dan Avatar answered Nov 07 '22 11:11

Mobile Dan