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é estaba 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 inicio solo tiene 1x y 2x, pero también he intentado usar UIImages con solo valores 1x, y 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 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 tampoco 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 del archivo del proyecto. Mientras actualicé a Xcode 7 ayer, 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 las imágenes que no aparecen parecen relacionarse ya sea con Imágenes de lanzamiento o con imágenes en archivos XIB que tienen clases asociadas, ninguna de las cuales parece relevante aquí.
Respuestas:
Apague y luego vuelva a encender.
En serio, reinicie el dispositivo, eso es lo que me solucionó.
Esto es lo que no funcionó:
Observaciones anteriores:
Al igual que los demás, esto:
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 de limpieza 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.
Radar: http://openradar.appspot.com/23534818
fuente
"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
fuente
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 coloque su archivo fuera de sus images.xcassets y use su nombre completo (con extensión) en Interface Builder
Espero que esto ayude !
fuente
La siguiente secuencia de operaciones me solucionó el problema en Xcode 7.3.1 y iOS 9.3.4:
fuente
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 por la que funcionan es porque la aplicación se ve obligada a "volver a tomar" o "reconstruir" las instantáneas 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).
Antecedentes
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.
El motivo por el que no se incluye una fuente personalizada en mi archivo Launch Screen Storyboard es el mismo motivo por el 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:
fuente
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ó.
fuente
Mi solución @iOS 11.x:
.jpg
imagen en lugar de.png
. Creo que el tamaño del archivo de imagen es importante;.xcassets
;fuente
.xcassets
ayudadoTení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ó.
fuente
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.
fuente
¿Has intentado apagar y volver a encender el dispositivo? Hazlo.
fuente
Lo que funcionó para mí fue seleccionar Restablecer contenido y configuración ... del menú Simulador
fuente
Saque imágenes de Image.xcassets y agréguelas nuevamente al proyecto. Funcionó para mi.
fuente
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
fuente
Yo uso el dispositivo iPhone 5s, también encuentro este problema.
Lo arreglo por:
Creo que es algo incorrecto de Xcode usar 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)
fuente
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.
fuente
Creo que launchscreen solo admite imágenes en Assets.xcassets.
fuente
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.
fuente
Reiniciar Xcode lo hizo por mí.
Lo que no lo hizo:
fuente
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í.
fuente
Parecía un error de iOS. Como a veces la animación del sistema desapareció.
Ahora solo reinicio el iPhone y me ha funcionado.
fuente
En mi caso, era el nombre de la imagen . Agregué
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
@2x
fue parte del problema, así como el-568h
. Lo que tiene sentido en un-812h@3x
dispositivo.fuente
Esto es demasiado importante ¡ Debe estar vacío !
Launch Screen File
fuente
La solución simple es usar JPG en lugar de PNG.
fuente
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.
fuente
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.
fuente
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.
fuente
Yo experimento lo mismo. Cambio la resolución de la imagen de 300 píxeles / pulgada, la cambio a 72. Funciona para mí.
fuente
Siguiente me ayudó:
También es muy importante : verifique que su xib no esté abierto en otra pestaña, ¡eso también puede causarlo!
fuente
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 proceso de almacenamiento en caché extraño lo estaba bloqueando.
fuente
El nombre de la imagen es el problema. Cambie el nombre de la imagen utilizada dentro del guión gráfico de la pantalla de inicio. Asegúrate de no usar ningún otro carácter que no sea alfanumérico (no uses "_- & @") Me funcionó como un encanto.
fuente