xcassets generate asset ios objective-c xcode assets

ios - generate - assets xcassets



Acceda al catálogo de activos mediante programación (3)

Sé que es una característica nueva y puede que esto no sea posible, pero me encantaría poder utilizar un catálogo de activos para organizar mis recursos, pero accedo a todas mis imágenes mediante programación. ¿Cómo accedería a mis imágenes, ahora? ¿Todavía accedo a ellos por sus nombres de archivo así:

[UIImage imageNamed:@"my-asset-name.png"];

Aparentemente, el Catálogo de Activos no hace referencia a la extensión, entonces, ¿sería más eficiente acceder a ella sin el ".png"?

La razón por la que estoy preguntando en lugar de probar por mí mismo es que incluso después de eliminar mis activos y el Catálogo de activos, luego de limpiar la carpeta de compilación, todavía puedo acceder a mis activos en mi aplicación. Esto me impide probar el catálogo de activos cuando lo implemente.

Después de revisar el Catálogo de activos, encontré el "Contenido.json" para cada activo y está formateado de la siguiente manera:

{ "images" : [ { "idiom" : "universal", "scale" : "1x" }, { "idiom" : "universal", "scale" : "2x", "filename" : "[email protected]" } ], "info" : { "version" : 1, "author" : "xcode" } }

Todavía no estoy seguro de cómo debería acceder a él, pero tal vez esto ayude?


@RileyE es 100% correcto. Sin embargo, de mis experiencias también vale la pena señalar que a veces la referencia del catálogo de activos para la imagen puede contener un espacio en blanco al final. Probablemente no lo notarás si usas storyboards / xibs ya que el autocompletado lo agregará. Pero cuando lo referencia desde el código, no es tan obvio cuál es el problema.


Para acceder a la imagen desde el Catálogo de activos, solo necesita acceder al nombre del grupo de activos sin ninguna extensión.

Entonces, si agrega una imagen llamada @"[email protected]" al Catálogo de Activos, creará un grupo de activos llamado my-button .

Ahora, todo lo que tienes que hacer es acceder a la imagen así:

// Objective-C [UIImage imageNamed:@"my-button"]; // Swift UIImage(named: "my-button")

Además, puede editar el grupo de activos cambiando su nombre (sin renombrar las imágenes) o cambiando sus componentes individuales. Esto le permitirá seguir convenciones de nomenclatura más sencillas, así como mostrar activos completamente diferentes entre diferentes scale UIScreen sin ninguna verificación de scale .

Para incorporar imágenes para diferentes tamaños de dispositivo, es posible que deba alternar en el subtítulo "Dispositivos" en las opciones del Grupo de catálogo de activos. Aquí hay un ejemplo de alternar (disponible haciendo clic con el botón derecho en el grupo).


Rápido

Puede obtener una referencia a una imagen en su catálogo de activos con

UIImage(named: "myImageName")

No necesita incluir la extensión.