xcassets icon generate asset ios xcode uiimage imagenamed

icon - generate asset ios



UIImage imageNamed devuelve nada (17)

¿Funciona la imagen en el simulador pero no en el dispositivo?

Si es así, en este escenario, siempre tiene que ver con el caso del nombre. El dispositivo requiere una caja exacta y el simulador no es tan quisquilloso si no recuerdo mal.

por ejemplo, para una imagen llamada image.png

[UIImage imageNamed:@"Image"];

funcionaría en el simulador pero no en el dispositivo ...

Soy bastante nuevo en iOS y Xcode.

Traté de cargar una imagen con

[UIImage imageNamed:@"imageName.png/jpg and so on"];

pero solo devuelve nada. La imagen debe estar en mi paquete de proyecto, teniendo en cuenta el hecho de que puedo elegirla desde menús de arrastrar y soltar en el InterfaceBuilder y se agregó a Xcode a través del menú "Agregar archivos a" projectname "...".

No importa si utilizo imágenes .png o .jpg, el resultado es el mismo: funcionan a través de IB pero no si intento ejecutar el método imageNamed.


Acabo de tener este problema para los archivos jpg nombrados en el disco "archivo.jpg"

Intentaba cargar sin la extensión, solo @ "archivo". Si bien esto funciona bien para pngs, no lo hace para jpg. Una vez que usé @ "file.jpg", ¡funcionó!


Además de la respuesta de @ Inturbidus: Para quienes vinieron aquí trabajando en Extensiones de aplicación :

La imagen con la que está trabajando debe pertenecer a ambos objetivos: aplicación alojada y extensión.

En otro caso, siempre obtendrá nil intentando acceder desde dentro del código de la extensión.


Asegúrese de que el campo Nombre del inspector de atributos de la imagen coincida exactamente con el nombre que está utilizando. En mi caso, la imagen era parte de una carpeta y el nombre de la imagen era "carpeta / nombre". Usar este nombre largo resolvió el problema. XCode 7.3.1


Asegúrese de tener la imagen del DISPOSITIVO que está utilizando en su archivo .xcassets. Una imagen marcada para iPad no se mostrará en el teléfono (o en el teléfono simulado).


Comentario de Re Mike Weller. La casilla de verificación es ....


En mi caso, el PNG estaba mal formado.

Por algún motivo, la vista previa de Xcode lo mostraba correctamente, pero cuando intenté cargarlo con UIImage, devolvía el valor nulo.


En mi caso, usar un nombre con caracteres acentuados resultó ser una mala idea. Cambié Astéroïdes a Asteroids y funcionó bien.


Hay solo algunas razones por las que una imagen volvería a ser nula con imageNamed:

  • La imagen no está en tu paquete. Asegúrese de que la imagen esté realmente en su proyecto. Asegúrate de que el objetivo esté marcado haciendo clic en el archivo y seleccionando el objetivo al que pertenece.

  • Tiene el nombre de la imagen escrito incorrectamente o un problema con la extensión.

  • Está utilizando una pantalla Retina, pero no tiene una imagen @ 2x. Intenta cambiar tu simulador a retina y mira si aparece.

Algunos consejos:

Si está realizando pruebas con el simulador, elimine la aplicación de su simulador y limpie su proyecto, luego vuelva a ejecutar. Si todavía aparece, debería aparecer en su teléfono (si no es así, probablemente sea un problema con el caso del nombre de archivo o la versión @ 2x).

Si está probando en su teléfono y no aparece, asegúrese de estar usando la misma versión del simulador (si tiene un iPhone 4 / 4s asegúrese de usar el simulador 4 / 4s con retina).

Una última cosa de acuerdo con esta publicación: la imagen JPG no se carga con UIImage imageNamed Existe algún problema con ciertos tipos de JPG que trabajan con imageNamed y sin extensión. OMI, deberías estar usando PNG de todos modos ya que iOS los comprime por ti, a menos que solo tengas que usar JPG.


Intenta usar UIImage(contentsOfFile:) lugar de imageNamed . Me funcionó con las imágenes descargadas.


Intente reexportar su imagen.

Tuve un problema similar, UIImage imageNamed volvía a cero y ninguna de estas respuestas solucionó mi problema.

Descubrí que en realidad era algo incorrecto con el archivo png. Abrí el archivo en el editor de imágenes GIMP, lo guardé como un nuevo archivo, lo exporté nuevamente como png y mágicamente comenzó a funcionar.

No cambié nada en el código, así que definitivamente había algo mal con el archivo de imagen real.


Para Xcode 6.4, haga clic en Images.xcassets y verifique si hay entradas para cada imagen que llamó. Puede hacer clic derecho en la imagen y seleccionar "Mostrar en el buscador" para verificar si las imágenes son las correctas agregadas.


Si verificó todo lo anterior y encuentra que su UIImage (llamado: "myImage") devuelve nada del código dentro de un marco dinámico que está construyendo , entonces debe cambiar el código a:

UIImage(named: "myImage", in: Bundle(identifier: "com.myframework.name"), compatibleWith: nil)

Esto debería recuperar el activo de CXAssets correctamente.


Tuve el mismo problema: @ "photo.jpg" resultó en "nil" UIImage. Cambiar a la especificación de archivo "actual", @ "photo.JPG" funciona bien! ¡No me había dado cuenta de que había sensibilidad a mayúsculas allí! MUY no intuitivo.


Verifique que el archivo no tenga espacio al final. El nombre como name @2x.png no se name @2x.png , pero [email protected] está bien.


tratar

[UIImage imageNamed:@"imageName.png"];

en cambio (con una extensión)


tuve un problema similar, finalmente la limpieza lo solucionó: la imagen apareció en el simulador, pero la identificación no apareció cuando se ejecutaba la aplicación en el iPhone.
Lo que hice: 1) eliminé la aplicación del iPhone 2) realicé Product / Clean después de que se solucionó el error y apareció la imagen.