El guión gráfico de la pantalla de inicio no muestra la imagen

162

Estoy tratando de hacer que una imagen se muestre como pantalla de inicio desde mi archivo Launch Screen.storyboard, sin embargo, la imagen nunca se muestra. Tengo etiquetas que se muestran bien, pero la imagen no aparece.

Así es como se ve la pantalla de inicio en el archivo Launch Screen.storyboard: ingrese la descripción de la imagen aquí

Sin embargo, cuando ejecuto la aplicación en el simulador (así como en el dispositivo físico), esto es lo que aparece:

ingrese la descripción de la imagen aquí

Como puede ver, la etiqueta "Prueba" aparece bien, sin embargo, la imagen no se muestra. Realmente no estoy seguro de por qué sucede esto y nada de lo que intento parece funcionar. Si alguien tiene alguna idea de cómo solucionar esto, sería muy apreciado.

sombreador de sombras
fuente
1
asegúrese de que su imagen tenga el formato png adecuado . no jpg si es así.
Utkarsh Singh
Compruebe esto stackoverflow.com/a/49802421/5790492
Nik Kov
3
El hecho de que múltiples respuestas completamente diferentes tengan muchos votos positivos es muy, muy triste.
Daniel Springer
1
¿Es posible que si la imagen es demasiado grande y su tiempo de carga tarda demasiado, se descarta de la pantalla de inicio?
Lubbo
@ Lubbo, creo que hay algo en esa teoría. Tengo una vista de inicio que tiene una imagen grande y una pequeña, la pequeña carga bien y la grande no. La imagen pequeña está en xcassets y la grande que he probado tanto dentro como fuera del archivo de activos.
Tom Bates

Respuestas:

327

Después de reiniciar Xcode, limpiar la compilación y varias otras sugerencias sobre SO sobre este problema. Lo que realmente lo arregló para mí fue un reinicio completo del dispositivo. (Perdí más de una hora en esto)

¡Supongo que solo demuestra que el viejo dicho de que lo apagaste y lo volviste a encender sigue siendo cierto para los últimos dispositivos!

Cómo reiniciar iPhone XS o iPhone XS Max

  1. Presione y suelte rápidamente el botón Subir volumen
  2. Presione y suelte rápidamente el botón para bajar el volumen
  3. Mantenga presionado el botón lateral hasta que aparezca el logotipo de Apple
Flexicoder
fuente
30
Este chico tiene razón. ¡Solo hacer un reinicio completo del dispositivo lo arregló para mí!
Lance Samaria
44
Tenía el problema de que una imagen no se actualizaba después de sobrescribirla en los activos. Gracias por el consejo, al salir completamente del simulador y reiniciarlo se actualizó la vista previa. Muy extraño que nada más pareciera hacer el truco.
Kilian
3
Gracias. También funciona para el simulador. Después de reiniciar el simulador, la imagen en Launch Scree.storyboard finalmente aparece. Definitivamente es un error de iOS.
Vince Yuan
44
El mismo problema aqui. Incluso cuando cambié la imagen en la pantalla de inicio en el simulador, la vieja imagen de alguna manera todavía estaba en caché en mi teléfono. Intenté construir limpio, cambiar nombre de archivo, cambiar imagen, no funcionó. Tuve que apagar y encender mi teléfono. Eso lo arregló.
Paul
3
¡Esto es 2020 y todavía me salvó el día! ¡Gracias!
Bezaleel
91

Estuve jugando con esto durante horas también. Pero encontré la solución ahora. Debe agregar la imagen a su proyecto y también a los assets.xcassets mediante arrastrar y soltar.

Tristan G
fuente
8
Esto fue. La imagen tenía que estar tanto en el proyecto como en los activos. Esto es como un juego de whack-a-mole. ¿Qué consejo lo arreglará? nadie lo sabe.
FranticRock
quién sabía que también debes agregar una imagen en el proyecto
Abdul Waheed
2
Agregar imagen solo al proyecto solucionó mi problema :)
Sneha
3
Gracias, esto lo resolvió para mí. Para agregar a esto, anteriormente había nombrado las imágenes con el tamaño (launch280.png, launch560.png, launch840.png) y también agregué un activo a Assets.xcassets con el nombre del activo launch. Pero aún así no funcionó. Tuve que cambiar el nombre de los archivos de imagen a launch.png, [email protected] y [email protected], agregarlos al proyecto, agregarlos como un activo llamado launch, y luego funcionó. Gracias Apple por hacer las cosas más simples innecesariamente complejas ¬_¬
mashers
2
Aaa, y estoy aquí por segunda vez 3 años después ... Es abril de 2020, XCode todavía tiene este error ...
Bien
42

Tuve el mismo problema, agregar la imagen a "Fases de compilación -> Copiar recursos de paquete" lo arregló para mí.

Jakab Robert
fuente
66
Esto es lo que necesitaba. La imagen debe estar en el paquete principal, no en el archivo de activos.
Meonardo
Esto es lo que hizo por mí.
Chris
Lo arregló para mí, ¡Gracias!
adam eliezerov
28

Siga los pasos a continuación,

  1. Eliminar la aplicación del dispositivo
  2. Reiniciar el dipositivo
  3. Construir de nuevo

Si no funciona, elimine los datos derivados. Preferencia Xcode-> Locationtab-> Datos derivados. Luego siga los pasos anteriores.

Vineesh TP
fuente
25

Me sucedió y me vuelve loco, más allá de hacerme perder algunos minutos hasta que me dé cuenta.

Entonces, como se dijo antes:

  1. Importe la imagen deseada a su proyecto Xcode (solo arrástrelo y suéltelo)
  2. Cambiar sus restricciones y alineación
  3. Actualizar marcos para resolver problemas de diseño automático
  4. En el menú de la pestaña del inspector de atributos (generalmente en el menú de la esquina derecha xCode), en Vista de imagen> Imagen, elimine la extensión de imagen (.png o .jpg): ese es el truco

En la pantalla de diseño, no aparecerá, pero cuando ejecute su aplicación, se mostrará.

¡Espero que pueda ayudar!

Jhonsore
fuente
1
¡trabajó para mi! ¡antes de probar su solución, la única forma en que lo hice mostrar fue reiniciar mi teléfono! Gracias
Filipe Sá
1
¡Gracias! No tengo idea de cómo lo encontraste, ¡pero funciona!
Stas Volskiy
Si de verdad !! ¡El truco es eliminar la extensión de imagen de los archivos de imagen .png! ¡Los archivos .jpg no funcionaron, así que primero tuve que convertirlos a .png! Muchas gracias Jhnosore!
ActivoA
24

Muy frustrante. Solución que finalmente funcionó:

  1. Reiniciar el dispositivo por completo

  2. Eliminar aplicación

  3. Instalar aplicación desde Xcode

Crashalot
fuente
17

¡Por fin, reiniciar el teléfono funciona para mí!

He pasado horas en este tema. Intenté cambiar el nombre de las imágenes, eliminar todos los activos de la imagen, modificar info.plist, reiniciar Xcode e incluso intenté establecer todos los atributos de las imágenes (lo que puedes decir cuán desesperado estaba).

shumin
fuente
Esto no proporciona una respuesta a la pregunta. Una vez que tenga suficiente reputación , podrá comentar cualquier publicación ; en su lugar, proporcione respuestas que no requieran una aclaración del autor de la pregunta . - De la opinión
Adam Richardson
Lo siento @AdamRichardson, proporciona una respuesta y una correcta también, y este fue mi caso. Solo necesitaba reiniciar el teléfono / simulador.
Kegham K.
Pasé 16 horas tratando de resolver esto y finalmente reiniciar el teléfono hizo el truco.
Krishnan
2
Apuesto a que alguien en Apple que pueda solucionar esto debe estar pensando: "Oh, solo necesitan reiniciar sus teléfonos; no es como si esto afectara a las versiones de lanzamiento ni nada. Podemos dejar esta tarea para más adelante".
dinesharjani
Finalmente, se reinició el teléfono que solucionó el problema
Taylor Maxwell
12

Este problema está relacionado con Assets.xcassets para solucionarlo, debe agregar la imagen como recurso pero no en la carpeta xcassets y luego debería funcionar bien

Reinier Melian
fuente
2
Esta es la única solución que ha funcionado hasta ahora. Reiniciar xcode, borrar datos derivados, cambiar el nombre de la imagen no funcionó. No recomiendo reiniciar el dispositivo como solución para nadie
NightFury el
Este error es tan antiguo como la creación de xcassets. Lo he llenado mentalmente en mi carpeta "cosas que Apple nunca resolverá".
Pato el
8

En mi caso, restablecer el contenido y la configuración del simulador solucionó el problema.

Tarek
fuente
7

Me enfrenté al mismo problema.

  1. Agregue un nuevo conjunto de imágenes a XcodeAssets.
  2. Agregar imágenes al conjunto de imágenes.
  3. Agregue la vista de imagen a la pantalla de inicio y configure su conjunto de imágenes como imagen
  4. En el inspector de atributos de Imageview, desmarque 'borra el contexto gráfico'
  5. Limpie la carpeta de compilación y vuelva a ejecutar.

ingrese la descripción de la imagen aquí

AG
fuente
5

Parece que hay algún problema con el almacenamiento en caché de recursos en xCode. Tuve el mismo problema, reinició xCode y todo funciona bien después de eso.

Entrada
fuente
5

Reinicie su dispositivo y borre los datos derivados del código x

Maulik Patel
fuente
3

Después de probar todo en varios subprocesos de StackOverflow, esto es lo que funcionó para mí:

  • Usa un .png
  • No lo incluya en su catálogo de Activos. Agréguelo directamente a la jerarquía de su proyecto, ya que agregaría cualquier archivo fuente.
  • En la vista de imagen, cargue la imagen, incluida su extensión. Ejemplo: launch_app_image.png

(Podría tener que limpiar el producto o los datos derivados para actualizar, pero no tuve que hacerlo)

Kqtr
fuente
2020 y esto sigue siendo relevante, a veces cambiar la imagen a un nuevo PNG dentro del catálogo cuando funciona lo detendrá. No estoy seguro de si se trata de un nivel de compresión, pero los archivos de imágenes simples funcionan.
Mitchell Currie
3

Tuve ese problema después de agregar una imagen al proyecto y derribar el dispositivo que resolvió el problema

maral
fuente
3

Estaba cambiando la imagen de fondo de la pantalla de inicio y la nueva imagen no se mostraba (reaccionar proyecto nativo).

Siguiendo las respuestas de otros.

Hice todo lo siguiente y se solucionó:

  • Construcción limpia.
  • Eliminar la aplicación del simulador
  • Salir del simulador
  • Reiniciar XCode
  • Ejecuta la aplicación nuevamente
descansando
fuente
3

Bueno, a partir de ahora hay un dispositivo de retina disponible e ignoré la @1ximagen Assets.xcassets.

En mi caso, tengo el logotipo de la aplicación en la pantalla de bienvenida que no es visible cuando ejecuto la aplicación.

Después de perder tanto tiempo, descubrí que solo proporcioné @2xe @3ximágenes para esa imagen del logotipo.

Este problema se resuelve agregando la @1xversión de esa imagen.

Kampai
fuente
1
¡Salvaste mi día!
Kambala
2

Debe asegurarse de que el nombre del archivo de su imagen tenga un formato como .png o .jpg al final, de lo contrario no funcionará. Además, antes de agregar su imagen, debe asegurarse de que el archivo de imagen esté en su carpeta "Assets.xcassets" dentro de su proyecto. Esto se puede hacer con un simple arrastrar y soltar. Además, asegúrese de que cuando haya agregado su imagen a su guión gráfico, el nombre de la imagen en la parte superior izquierda también coincida con el nombre del archivo de imagen real. Intentaría buscar restricciones también. Espero que esto ayude. Buena suerte con tu aplicación.


fuente
2

Pasé horas en este problema antes de finalmente darme cuenta de mi error. Cuando agrega una imagen a un UIImageView, usará solo el nombre de la imagen. Si sus imágenes están en una carpeta diferente a su guión gráfico, se mostrarán en xcode pero no cuando ejecute la aplicación. Debe agregar el prefijo de ruta de archivo apropiado, por ejemplo, images / image.png. Ahora aparecerá como un signo de interrogación azul en xcode, pero funcionará en la aplicación.

Prime624
fuente
2

Solo para agregar mis $ 0.02 a esta pregunta; Lo resolví usando imágenes PNG en lugar de imágenes JPG / JPEG.

Después de convertir las imágenes a PNG y procesarlas para reducir un poco el tamaño, todo funcionó bien.

Gee.E
fuente
2

Después de invertir mucho tiempo, obtuve la solución:

Step 1:- Quit Xcode
Step 2:- Delete the app from device/simulator
Step 3:- Restart your device (if you are using simulator then you have to quit simulator)
Step 4:- Clear all derived data 
Step 5:- Clear Bin
Step 6:- Open Xcode and relaunch the app, it will work 
Vipul Kumar
fuente
funcionó para mí gracias
Dilip Tiwari
@DilipTiwari de nada :)
Vipul Kumar
1

Me enfrenté al mismo problema. Intenté diferentes soluciones para eso, pero nada demostró ser útil. Luego me di cuenta de que la imagen no era visible solo cuando instalé directamente la aplicación en el dispositivo y la aplicación todavía está conectada al xcode. Si lo desconecto y luego abro la aplicación, la imagen era visible como se esperaba. Puede ser un error de xcode.

Preeti Rani
fuente
1

Intenté limpiar el proyecto, eliminar el png, eliminar las restricciones no funcionó para mí.

Acabo de hacer una copia más de la imagen y cambié el nombre de la copia, luego eliminé la imagen anterior y agregué la nueva imagen (la misma, con el nombre cambiado), simplemente di esa imagen y funcionó para mí.

Además, no estoy usando Assets.xcassets, usando la imagen en una carpeta.

R. Mohan
fuente
1

Intenté muchas cosas con esto (este hilo solo parece tener un millón de ideas y la mitad de ellas son conflictivas). El problema para mí fue que cuando hacía cosas como reiniciar el dispositivo y Xcode, causaba que la imagen se mostrara durante algunas sesiones de la aplicación, y luego se detenía (no tengo idea de por qué, pero WOW fue molesto) .

Después de incontables horas, descubrí que la respuesta de AG en este hilo es la correcta. Lo único que estaba haciendo mal era que estaba creando un nuevo conjunto de imágenes dentro de xcassets, pero seguía usando el nombre de la imagen dentro de UIImageView dentro del guión gráfico en lugar de usar el nombre del conjunto de imágenes.

Para aclarar, lo que haría es crear un nuevo conjunto de imágenes y asígnele el nombre "Launch-Defaults", y luego agregarle sus imágenes. Luego, dentro de UIImageView dentro del guión gráfico, usa la imagen "Launch-Default" (sin incluir una extensión ya que no hay ninguna ya que se trata de un conjunto de imágenes).

Cuando haces todo eso, la imagen debería aparecer correctamente dentro de tu guión gráfico. Algunas personas dicen que la imagen se mostrará en blanco si no usa la extensión (.jpg o .png), pero supongo que es porque no están usando el nombre del conjunto de imágenes. Otros dicen que necesita usar una extensión como .png o .jpg, pero la clave es crear el conjunto de imágenes dentro de xcassets y luego usar ese conjunto de imágenes dentro del guión gráfico. Cuando se hace correctamente, no debe haber funkiness como una imagen que no aparece o la pantalla de inicio solo funciona algunas veces (requiere un reinicio).

John Holtkamp
fuente
1

En mi caso particular, la pantalla de inicio funcionó para el simulador y otros dispositivos, pero dejó de funcionar para un dispositivo específico. Esto me llevó a creer que se trataba de algunos datos de almacenamiento en caché guardados por xcode (v10 y iPhone 7 v12.1).

Eliminé los datos derivados en: ~/Library/Developer/Xcode/DerivedData/solo vaciando el contenido de la carpeta, no eliminando la carpeta. Luego reinicié el Mac y el iPhone y limpié y reconstruí el proyecto, y ahora está apareciendo.

No estoy seguro de si todo esto era necesario, pero no quería perder más tiempo reduciéndolo, por lo que el enfoque de martillo anterior funcionó para mí. Pero, por supuesto, siempre depende de su situación específica: la mía era específica del dispositivo; para otros podría ser la imagen real o el diseño de la pantalla de inicio, etc.

zkon
fuente
1

Mi problema.

Motivo: cambié el nombre de las imágenes después de arrastrarlas a Xcode. Solución: no cambie el nombre de las imágenes después de arrastrarlas a Xcode. Crea problemas para entender Xcode. Cambie el nombre de las imágenes antes de arrastrar / agregar a Xcode.

Espero que te ayude!

Wajahat Hussain
fuente
0

Me acabo de dar cuenta de esto. Mi imagen de inicio no se mostraba, aparece una pantalla en blanco al iniciar en un dispositivo (iPhone 6, 7+) o testFlight. Solución: se cambió el nombre de "Landing_screen.png" a solo "Landing_screen" eliminando la parte .png. El ícono de la imagen en Xcode cambió a ícono blanco y en el guión gráfico de la pantalla de inicio la imagen aparece ahora como un signo de interrogación. Ahora aparece la imagen de lanzamiento y no la pantalla en blanco. Mi configuración: estoy usando Swift 3.1 con Xcode 8.3.1. En LaunchScreen.storyboard agregué una vista de imagen simple y estiré la imagen para que se ajuste al controlador de vista. Establecí las restricciones de diseño automático en el espacio Superior / Inferior / Principal / Tradicional en la vista general a 0 - vea la imagen a continuación:

ingrese la descripción de la imagen aquí

Brian
fuente
0

En mi caso, resultó que todavía tenía algunas vistas vinculadas al controlador de vista que ahora era solo un controlador de vista básico. Si control-clic en la vista, puedo ver los puntos de venta con advertencias, sin embargo, las advertencias no aparecieron en Xcode, por lo que tuve problemas para encontrarlas.

Gujamin
fuente
0

Esto pasa a ser un problema de almacenamiento en caché en XCode / iOS, pero hay una solución simple para esto: simplemente cambie el nombre del archivo dentro de Assets.xcassets, para que el caché se regenere.

thatmarcel
fuente
0

Mi primer error fue crear un .storyboard normal, renombrarlo y definirlo como pantalla de inicio en la configuración del proyecto. En este caso tuve problemas de imagen. Parece que faltan algunas configuraciones en este caso, por lo que acabo de crear un nuevo archivo a través de file-> new y seleccioné directamente la "Pantalla de inicio" y luego funcionó.

También tuve en cuenta que, por alguna razón, las restricciones de diseño no son compatibles con la pantalla de inicio. Tal vez fue así al principio, no estoy seguro, pero ahora las restricciones deberían funcionar.

Quizás esto ayude a cualquiera.

Tim Christmann
fuente
0

Me he enfrentado a este mismo problema cuando uso launch-storyboard para mostrar la pantalla de inicio y después de investigar, descubrí que la imagen que configuré en launch-storyboard es de diferente tamaño y configuré una vista de imagen más grande que el tamaño real de la imagen.

Entonces, la solución que he encontrado es establecer el tamaño del contenido de la vista de imagen como ajuste de aspecto o establecer el tamaño de la vista de imagen como tamaño de imagen.

Por ejemplo, si su imagen @ tamaño 1x es 200X200, la vista de la imagen debería ser 200X200 de lo que resolverá este problema.

Como porque si configura el tamaño de vista de imagen más grande que la imagen, la imagen se almidona y esto no está permitido.

Si todavía tiene alguna duda, comente aquí y pregunte

Hardik Vyas
fuente