ios - generate - assets xcassets
UIImage Ver imágenes faltantes en la pantalla de inicio en el dispositivo (30)
Tengo una aplicación que admite iOS8 y posterior, integrada en Xcode 7 y estoy usando una XIB para una pantalla de inicio (no tengo imágenes de inicio). La vista contiene un solo UILabel con la versión de la aplicación y 2 UIImageViews con imágenes que están presentes en Images.xcassets: un logotipo y una imagen de bienvenida.
El UILabel y la imagen del logotipo aparecen correctamente cuando inicio la aplicación, pero la imagen de bienvenida no aparece si ejecuto la aplicación en un iPad Air 2 con iOS9. He probado en un Air y un Mini con iOS8 y simuladores iOS9 para iPad 2, iPad Air y iPad Air 2 y la imagen aparece correctamente en todos ellos.
Ejecuté algunos problemas básicos de solución de problemas para ver si podía descubrir qué está sucediendo, pero no he podido resolverlo y la única diferencia que puedo ver entre la imagen que funciona y la que falla es cuando la agregué a la bienes...
Aquí hay un resumen de lo que sé:
-
El UIImageView para la imagen de bienvenida está en el lugar correcto, en el tamaño correcto. Puedo decir esto porque configuré su color de fondo en verde solo para asegurarme. La vista está ahí, pero la imagen no aparece. Así que supongo que la vista no tiene la culpa.
-
Al configurar UIImageView para que la imagen de bienvenida también use la imagen del logotipo, la imagen del logotipo aparece en el lugar correcto para la vista. Esto también me lleva a suponer que la vista no tiene la culpa.
-
El UIImage que estoy usando en la vista de imagen de bienvenida se usa en otra parte de la aplicación y aparece bien en esas otras vistas (la imagen del logotipo también se usa en otra parte de la aplicación y parece estar bien). Así que supongo que la imagen es válida y que aparezca en otras vistas no es un problema.
-
He confirmado que la configuración de UIImages para el logotipo y la presentación en el archivo xcassets es la misma. Están configurados en Universal, Cualquier ancho y alto, múltiples factores de escala, representados por defecto. Hay una diferencia: el logotipo tiene escalas 1x, 2x y 3x, mientras que la imagen de bienvenida solo tiene 1x y 2x, pero también he intentado usar UIImages con solo valores 1x, 1x y 2x en UIView y funcionan (si fueran agregado al proyecto hace algún tiempo).
-
Agregar otra imagen de un tamaño o formato diferente (PNG y JPG) a mis xcassets y usar ese UIImage en el UIImageView para la imagen de bienvenida también no se muestra.
-
Al agregar otro UIImageView al archivo XIB y asignarle un UIImage que ya estaba en los trabajos de xcassets, la imagen aparece en la pantalla de carga.
-
Copiar y renombrar los archivos de imagen utilizados para el logotipo y agregarlos al proyecto y luego usar ese UIImage en la vista de bienvenida también no se muestra.
-
Intenté limpiar el proyecto, reiniciar la máquina de desarrollo y eliminar la aplicación del Air 2 y volver a instalarla por si eso fuera un problema.
Estos últimos tres pasos me llevan a creer que hay algún problema con las imágenes agregadas después de un cierto punto en la vida útil del archivo del proyecto. Aunque ayer actualicé a Xcode 7, la imagen de bienvenida se agregó originalmente en Xcode 6, pero la imagen del logotipo (también agregada en Xcode 6) se agregó algunos meses antes.
He revisado los archivos json en busca de la imagen del logotipo y la imagen de bienvenida y parecen tener el mismo formato. También he rastreado el archivo pbxproj buscando diferencias y no puedo ver ninguna.
Entonces, me preguntaba si alguien tenía alguna idea de por qué la pantalla de inicio podría no mostrar estas nuevas imágenes que estoy agregando específicamente en el Air 2. Otras preguntas que he estado leyendo relacionadas con imágenes que no aparecen parecen relacionarse con Imágenes de lanzamiento o con imágenes en archivos XIB que tienen clases asociadas, ninguna de las cuales parece relevante aquí.
"La solución para mí fue simplemente asegurarme de que la casilla" Limpiar el contexto gráfico "no esté marcada para el UIImageView en el guión gráfico. Simplemente cambiar esto me lo arregló". Ninguna otra solución funcionó para mí. Lo obtuve del foro de desarrolladores de Apple
¿Has intentado apagar y volver a encender el dispositivo? Hazlo.
Creo que launchscreen solo admite imágenes en Assets.xcassets.
El nombre de la imagen es el problema. Cambie el nombre del nombre de la imagen utilizada dentro del guión gráfico de la pantalla de inicio. Asegúrese de no usar ningún otro carácter que no sea alfanumérico (no use "_- & @") Funcionó para mí como un encanto.
En mi caso, era el
nombre de
la
imagen
.
[email protected]
una imagen llamada
[email protected]
a LaunchScreen.xib, una de mis antiguas pantallas de inicio solo para fines de prueba.
Estaba construyendo en el iPhone X Simulator, la imagen no apareció.
Cambiar el nombre a algo neutral (MyImage.png) resolvió el problema.
Parece que el
@2x
fue parte del problema, así como el
-568h
.
Lo que tiene sentido en un dispositivo
-812h@3x
.
Encontré una solución simple pero radical que funcionó para mí:
1 - Eliminar el archivo: LaunchScreen.storyboard y moverlo a la papelera.
2 - Producto -> Limpio
3 - Cree un nuevo archivo de pantalla de inicio llamado: LaunchScreen.storyboard y coloque sus imágenes en él
4 - Guardar y construir
Eso funcionó para mí después de probar métodos complejos durante horas ... Parece que mi LaunchScreen.storyboard estaba bloqueado contra escritura y no se podía guardar o un extraño proceso de almacenamiento en caché lo estaba bloqueando.
Estaba teniendo el mismo problema, pero reiniciar el dispositivo no ayudó. Lo que funcionó para mí fue eliminar el UIImageView de mi guión gráfico de lanzamiento y agregar uno nuevo.
Estaba viendo el mismo problema. Reiniciar el dispositivo (iPhone 6) y reconstruir la aplicación en el dispositivo es lo único que lo solucionó. Intenté muchos otros consejos y sugerencias, pero nada más funcionó. Solo reiniciar + reconstruir ayudó.
La siguiente secuencia de operaciones me solucionó el problema en Xcode 7.3.1 y iOS 9.3.4:
- Limpia tu construcción (⌘ + ⇧ + K)
- Cerrar Xcode
- Dispositivo iOS con restablecimiento completo (reinicio del botón de encendido + inicio)
- Relanzar Xcode: deje que la indexación termine y se desarrolle en el dispositivo una vez que esté listo.
La solución simple es usar JPG en lugar de PNG.
Me ha funcionado.
Primero en xcode clean de project.
Si usa el simulador, elimine la aplicación y reinicie.
Si usa un dispositivo, elimine la aplicación y reinicie el dispositivo.
Mi solución @iOS 11.x:
-
Utilice la imagen
.jpg
lugar de.png
. Creo que el tamaño del archivo de imagen es importante; -
(Opcionalmente) Ponga el archivo de imagen en el directorio del proyecto en lugar de
.xcassets
;
Muchas otras respuestas sugieren que reiniciar dispositivos y / o reconstruir y / o reinstalar es la solución.
Si bien estas respuestas funcionan para algunos de nosotros, la razón es que la aplicación se ve obligada a "volver a tomar" o "reconstruir" las instantáneas almacenadas en caché.
Las aplicaciones usan las instantáneas almacenadas en caché para presentar imágenes antes de que los datos de soporte se carguen en la memoria, incluido el catálogo de activos que contiene imágenes del guión gráfico.
Esta respuesta SO de @jaga proporciona la solución, pero no la razón, de por qué faltan UIImageViews en la pantalla de inicio del dispositivo (pero no en el simulador).
Fondo
Recientemente intenté usar una fuente personalizada en mi archivo "Launch Screen.storyboard".
La razón por la que no pude aclararme después de leer esta respuesta SO de @TimCamber, lo que me llevó a investigar un poco más y probar.
La razón por la que no se incluye una fuente personalizada en mi archivo Launch Screen Storyboard es la misma razón por la que no se incluye una imagen dentro de un catálogo de activos ...
La aplicación prepara instantáneas verticales y horizontales de la pantalla de inicio de la aplicación a partir del archivo Storyboard de la pantalla de inicio y (actualmente) la guarda en el paquete de la aplicación aquí:
-
/Library/Caches/Snapshots/<<app_bundle>>/
y -
/Library/Caches/Snapshots/<<app_bundle>>/downscaled/
.
Este proceso se completa antes de que se carguen los archivos de soporte, incluidas las fuentes personalizadas y el catálogo de activos.
Solución
Como se mencionó anteriormente siguiendo la solución de @ jaga, literalmente todo lo que se requiere es:
- (vieja escuela) agregue un archivo de imagen (.PNG) al paquete de su aplicación (como puede ver en la captura de pantalla a continuación, agregué el archivo de imagen en el subdirectorio Archivos de Soporte en un subdirectorio de Imágenes), y
- haga referencia a esa imagen en su objeto UIImageView en el archivo Launch Screen Storyboard ...
Parecía un error de iOS. Como a veces la animación del sistema desapareció.
Ahora solo reinicio el iPhone y me ha funcionado.
Reiniciar Xcode lo hizo por mí.
Lo que no lo hizo:
- Carpeta de compilación limpia
- Reinicie el dispositivo o simulador (la imagen tampoco era visible)
Saque imágenes de Image.xcassets y agréguelas nuevamente al proyecto. Funcionó para mi.
Seleccione ImageView y luego elimine la extensión de imagen (.png o .jpg) en la pestaña del inspector de atributos> Vista de imagen> Imagen> Nombre de imagen.
En launchscreen.storyboard, la imagen no aparecerá pero estará allí en el dispositivo. Esto funcionó para mí.
Siguiente me ayudó:
- cambie "Iniciar archivo de pantalla" a otro xib
- ejecuta la aplicación
- cambiar xib de nuevo
También es muy importante : verifique que su xib no esté abierto en otra pestaña, ¡eso también puede causarlo!
También puede 1. eliminar la imagen del proyecto 2. cambiar el nombre de la imagen 3. agregar la imagen del archivo al proyecto
Funcionó para mi.
También tuve este problema exacto en Xcode 7 con dispositivos iPad y iPhone. Aunque no tiene sentido, pude evitarlo la mayor parte del tiempo configurando no solo la Imagen sino también la Imagen resaltada en la vista de imagen a la misma imagen en mis imágenes.
Tenía lo mismo para la aplicación instalada desde TestFlight. Eliminar aplicación -> luego reiniciar iPhone -> luego reinstalar la aplicación funciona para mí. Simplemente reinstalar la aplicación o simplemente reiniciar el dispositivo no ayudó.
Tengo el mismo problema con imageView, un guión gráfico de pantalla de inicio. Eliminé la referencia de la imagen del proyecto, cambié el nombre de mi imagen y la agregué nuevamente al proyecto. Todo funciona a la perfección.
Tuve este problema en iOS 10 en un iPhone 6 y también en el simulador. Mi imagen estaba en una carpeta y ese parecía ser el problema. Eliminé la imagen de la carpeta en Xcode y la puse en el directorio base del proyecto que resolvió el problema.
Tuve exactamente el mismo problema en un iPhone 6.
El hecho muy extraño es que pude usar otra imagen de mis imágenes.xcassets que tenían el mismo tamaño, compresión, espacio de color ...
No puedo encontrar por qué no funciona, pero encontré una solución: simplemente ponga su archivo fuera de images.xcassets y use su nombre completo (con extensión) en Interface Builder
Espero que esto ayude !
Yo experimento lo mismo. Cambio la resolución de la imagen de 300 píxeles / pulgada, la cambio a 72. Funciona para mí.
Yo uso el dispositivo iPhone 5s, también encuentro este problema.
Lo arreglo por:
Eliminar datos de la unidad
Limpiar el proyecto
Reiniciar Xcode
Eliminar el proyecto de mi dispositivo
Reinicia los 5s.
Creo que es incorrecto que Xcode use memoria, el sistema puede asignar un poco de memoria para Xcode porque Xcode ha fallado al dibujar la imagen del almuerzo (en mi computadora, Xcode ha funcionado durante varias semanas sin cerrar)
Apague y luego vuelva a encender.
En serio, reinicie el dispositivo, eso es lo que me solucionó.
Esto es lo que no funcionó:
- Limpieza de datos derivados
- Limpieza del proyecto
- Desinstalar la aplicación del dispositivo
- Reiniciar Xcode
- Reiniciar la computadora
Observaciones anteriores:
Al igual que los demás, esto:
- Funciona bien en el simulador
- Solía funcionar en los dispositivos (iPhone 5S, iPad Air)
- No hay cambios de código (verificado a través de git reset --hard HEAD), pero dejó de funcionar.
Lo que recuerdo al desencadenar la primera compilación donde dejó de funcionar fue desconectar el iPhone mientras se estaba ejecutando. (No estoy seguro si está relacionado)
Sin embargo, el restablecimiento de git que no lo soluciona (combinado con todos los pasos limpios que no funcionan) me dice que esto debe estar almacenado en caché en otro lugar. ¿Posiblemente en uno de los archivos .gitignored? (Estoy usando el archivo de ignorar Git para proyectos de Xcode )
Una solución alternativa que funcionó para un UIImageView (en la UIView que tiene tres) pero no para los demás fue poner la imagen en un archivo .xcassets. Volver al archivo de imagen simple no deshace la corrección. (Realmente se siente como un error de almacenamiento en caché).
ACTUALIZACIÓN: Ver arriba: reiniciar el dispositivo es lo que lo solucionó. Tengo la sensación de que los datos de mapa de bits incorrectos se almacenan en caché en el propio dispositivo.
Elimine la aplicación del dispositivo móvil y luego reinicie el dispositivo e instale la aplicación nuevamente. ahora se resolverán los problemas