Avvia lo storyboard dello schermo che non visualizza l'immagine


162

Sto cercando di ottenere un'immagine da visualizzare come schermata di avvio dal mio file Launch Screen.storyboard, tuttavia l'immagine non viene mai visualizzata. Ho delle etichette che si presentano bene, ma l'immagine non appare.

Ecco come appare la schermata di avvio nel file Launch Screen.storyboard: inserisci qui la descrizione dell'immagine

Tuttavia, quando eseguo l'app sul simulatore (così come sul dispositivo fisico) questo è ciò che appare:

inserisci qui la descrizione dell'immagine

Come puoi vedere, l'etichetta "Test" si presenta bene, tuttavia l'immagine non viene visualizzata. Non sono davvero sicuro del perché questo stia accadendo e nulla di ciò che provo sembra funzionare. Se qualcuno ha qualche idea su come risolvere questo sarebbe molto apprezzato.


1
assicurati che la tua immagine sia nel formato png corretto . non jpg se lo è.
Utkarsh Singh,


3
Il fatto che più risposte completamente diverse abbiano molti voti positivi è molto, molto triste.
Daniel Springer,

1
È possibile che se l'immagine è troppo grande e il suo tempo di caricamento impiega troppo, viene scartato dalla schermata di avvio?
Lubbo,

@Lubbo Penso che ci sia qualcosa in quella teoria. Ho una vista di lancio che ha un'immagine grande e piccola, quella piccola si carica bene e quella grande no. L'immagine piccola è in xcasset e quella grande che ho provato sia dentro che fuori dal file delle risorse.
Tom Bates,

Risposte:


327

Dopo aver riavviato Xcode, pulendo la build e una serie di altri suggerimenti su SO su questo problema. Ciò che in realtà l'ha risolto per me è stato un duro riavvio del dispositivo. (Ho perso più di un'ora su questo)

Suppongo che ciò dimostra che il vecchio detto che hai spento e riacceso è ancora vero per gli ultimi gadget!

Come riavviare iPhone XS o iPhone XS Max

  1. Premi e rilascia rapidamente il pulsante Volume su
  2. Premi e rilascia rapidamente il pulsante Volume giù
  3. Tieni premuto il pulsante laterale fino a quando appare il logo Apple

30
Questo ragazzo ha ragione. Il semplice riavvio del dispositivo ha risolto il problema per me!
Lance Samaria,

4
Ha avuto il problema di un'immagine non aggiornata dopo averla sovrascritta nelle risorse. Grazie per il suggerimento, abbandonando completamente il simulatore e riavviandolo ha aggiornato l'anteprima. Molto strano che nient'altro sembrasse fare il trucco.
Kilian,

3
Grazie. Funziona anche per il simulatore. Dopo aver riavviato il simulatore, l'immagine in Launch Scree.storyboard viene finalmente visualizzata. È sicuramente un bug di iOS.
Vince Yuan,

4
Lo stesso problema qui. Anche se l'immagine è stata cambiata nella schermata di avvio nel simulatore, la vecchia immagine era in qualche modo ancora memorizzata nella cache del mio telefono. Ho provato a costruire pulito, cambiare il nome del file, cambiare l'immagine, non ha funzionato. Ho dovuto spegnere e riaccendere il telefono. Ciò l'ha risolto.
Paolo,

3
Questo è il 2020 e questo mi ha ancora salvato la giornata! Grazie!
Bezaleel,

91

Stavo scherzando con questo anche per ore. Ma ho trovato la soluzione ora. È necessario aggiungere l'immagine al progetto e anche agli asset.xcasset tramite trascinamento della selezione.


8
Era questo. L'immagine doveva essere sia nel progetto che nelle risorse. Questo è come un gioco di Whack-a-Mole. Quale consiglio lo risolverà? nessuno sa.
FranticRock,

chissà che anche tu dovessi aggiungere un'immagine nel progetto
Abdul Waheed,

2
L'aggiunta di un'immagine solo al progetto ha risolto il mio problema :)
Sneha,

3
Grazie, questo ha risolto il problema per me. Per aggiungere a questo, avevo precedentemente denominato le immagini con le dimensioni (launch280.png, launch560.png, launch840.png) e avevo anche aggiunto una risorsa a Assets.xcassets con il nome della risorsa di launch. Ma non ha ancora funzionato. Ho dovuto rinominare i file di immagine in launch.png, launch@2x.png e launch@3x.png, aggiungerli al progetto, aggiungerli come un asset chiamato launche quindi ha funzionato. Grazie a Apple per aver reso le cose più semplici inutilmente complesse ¬_¬
mashers

2
Aaaand sono qui per la seconda volta 3 anni dopo ... È aprile 2020, XCode ha ancora questo bug ... Bello ...
FranticRock

42

Ho avuto lo stesso problema, aggiungendo l'immagine a "Crea fasi -> Copia risorse bundle", l'ho risolto per me.


6
Questo è quello di cui avevo bisogno. L'immagine deve trovarsi nel bundle principale non nel file delle risorse.
Meonardo,

Questo è quello che ha fatto per me.
Chris,

Risolto il problema per me, grazie!
Adam Eliezerov,

28

Segui i passaggi seguenti,

  1. Rimuovi l'applicazione dal dispositivo
  2. Riavvia il dispositivo
  3. Costruisci di nuovo

Se non funziona, elimina i dati derivati. Preferenza Xcode-> Locationtab-> Dati derivati. Quindi seguire i passaggi precedenti.


25

Mi è successo e mi fa impazzire, oltre a farmi perdere qualche minuto fino a quando non lo capisco.

Quindi, come è stato detto prima:

  1. Importa l'immagine desiderata nel tuo progetto Xcode (basta trascinarla e rilasciarla)
  2. Cambia i suoi vincoli e allineamento
  3. Aggiorna frame risolvendo i problemi di layout automatico
  4. Nel menu della scheda Impostazioni attributi (generalmente nel menu nell'angolo destro xCode), in Visualizzazione immagine> Immagine, rimuovi l'estensione immagine (.png o .jpg): questo è il trucco

Nella schermata di progettazione, non verrà visualizzato, ma quando si esegue l'app, verrà visualizzato.

Spero possa essere d'aiuto!


1
ha funzionato per me! prima di provare la tua soluzione, l'unico modo per mostrarlo era riavviare il telefono! Grazie
Filipe Sá

1
Grazie! Non ho idea di come l'hai trovato, ma funziona!
Stas Volskiy,

Si Certamente!! Il trucco è rimuovere l'estensione dell'immagine dai file di immagine .png! I file .jpg non funzionavano, quindi ho dovuto prima convertirli in .png! Grazie mille Jhnosore!
ActiveA

24

Molto frustrante. Soluzione che alla fine ha funzionato:

  1. Esegui un riavvio forzato del dispositivo

  2. Elimina app

  3. Installa l'app da Xcode


17

Alla fine, riavvia il telefono funziona per me !!

Ho trascorso ore su questo problema. Avevo provato a cambiare il nome delle immagini, eliminare l'intero patrimonio delle immagini, modificare info.plist, riavviare Xcode e persino tentare di impostare tutti gli attributi delle immagini (che puoi dire quanto ero disperato).


Questo non fornisce una risposta alla domanda. Una volta che hai una reputazione sufficiente , sarai in grado di commentare qualsiasi post ; fornire invece risposte che non richiedono chiarimenti da parte del richiedente . - Dalla recensione
Adam Richardson,

Mi dispiace @AdamRichardson che fornisce anche una risposta e una corretta e questo è stato il mio caso. Avevo solo bisogno di riavviare il telefono / simulatore.
Kegham K.,

Ho trascorso 16 ore a cercare di risolvere questo problema e alla fine il riavvio del telefono ha funzionato.
Krishnan,

2
Scommetto che qualcuno di Apple che potrebbe risolvere questo problema deve pensare: "Oh, hanno solo bisogno di riavviare i loro telefoni - non è che questo influenzi le build di rilascio o altro. Possiamo lasciare questo compito per dopo".
Dinesharjani,

Alla fine è stato riavviato il telefono che ha risolto il problema
Taylor Maxwell,

12

Questo problema è correlato a Assets.xcassets per risolverlo è necessario aggiungere l'immagine come risorsa ma non nella cartella xcassets e quindi dovrebbe funzionare bene


2
Questa è l'unica soluzione finora funzionata. Il riavvio di xcode, la cancellazione dei dati derivati, la modifica del nome dell'immagine non ha funzionato. Non consiglio di riavviare il dispositivo come soluzione per nessuno
NightFury,

questo bug è vecchio quanto la creazione di xcasset. L'ho riempito mentalmente nella mia cartella "cose ​​che Apple non risolverà mai".
Duck,

8

Nel mio caso, il ripristino del contenuto e delle impostazioni per il simulatore ha risolto il problema.


7

Ho affrontato lo stesso problema.

  1. Aggiungi un nuovo set di immagini a XcodeAssets.
  2. Aggiungi immagini al set di immagini.
  3. Aggiungi la visualizzazione dell'immagine per avviare la schermata e imposta il tuo set di immagini come immagine
  4. Nella finestra di ispezione degli attributi di Imageview, deseleziona "cancella contesto grafico"
  5. Pulisci la cartella di build ed esegui di nuovo.

inserisci qui la descrizione dell'immagine


5

Sembra che ci sia qualche problema con la memorizzazione nella cache delle risorse in xCode. Ha avuto lo stesso problema, riavviato xCode e tutto funziona bene dopo.


5

Riavvia il dispositivo e cancella i dati derivati ​​dal codice x


3

Dopo aver provato tutto su diversi thread StackOverflow, ecco cosa ha funzionato per me:

  • Usa un .png
  • Non includerlo nel catalogo delle risorse. Aggiungilo direttamente alla gerarchia del tuo progetto, come aggiungeresti qualsiasi file sorgente.
  • Nella vista immagine, carica l'immagine inclusa la sua estensione. Esempio: launch_app_image.png

(Potrebbe essere necessario pulire il prodotto o i dati derivati ​​per l'aggiornamento, ma non ho dovuto)


2020 e questo è ancora rilevante, a volte cambiando l'immagine in un nuovo PNG all'interno del catalogo quando funziona lo fermerà. Non sono sicuro se si tratta di un livello di compressione ma i file di immagini semplici funzionano.
Mitchell Currie,

3

Ho avuto quel problema dopo aver aggiunto l'immagine al progetto e abbattuto il dispositivo il problema risolto


3

Stava cambiando l'immagine di sfondo della schermata iniziale e la nuova immagine non veniva visualizzata (reagisci progetto nativo).

Seguendo le risposte degli altri.

Ho fatto tutto quanto sotto ed è stato risolto:

  • Build pulito.
  • Rimuovi l'app dal simulatore
  • Esci dal simulatore
  • Riavvia XCode
  • Esegui di nuovo l'app

3

Bene Da ora c'è un dispositivo retina disponibile e ho ignorato l' @1ximmagine in Assets.xcassets.

Nel mio caso, ho il logo dell'app nella schermata Splash che non è visibile quando eseguo l'applicazione.

Dopo aver perso così tanto tempo ho capito che ho fornito solo immagini @2xe @3ximmagini per quell'immagine logo.

Questo problema viene risolto aggiungendo la @1xversione di quell'immagine.


1
mi hai salvato la giornata!
Kambala,

2

Devi assicurarti che il nome del file della tua immagine abbia un formato come .png o .jpg alla fine, altrimenti non funzionerà. Inoltre, prima di aggiungere la tua immagine, devi assicurarti che il file immagine sia nella cartella "Assets.xcassets" all'interno del tuo progetto. Questo può essere fatto con un semplice trascinamento della selezione. Inoltre, assicurati di aver aggiunto l'immagine allo storyboard che il nome dell'immagine in alto a sinistra corrisponda anche al nome del file immagine reale. Vorrei provare a esaminare anche i Vincoli. Spero che questo ti aiuti. Buona fortuna con la tua app.


2

Ho trascorso ore su questo problema prima di realizzare finalmente il mio errore. Quando aggiungi un'immagine a UIImageView, utilizzerà solo il nome dell'immagine. Se le immagini si trovano in una cartella diversa rispetto allo storyboard, verranno visualizzate in xcode ma non durante l'esecuzione dell'app. È necessario aggiungere il prefisso del percorso file appropriato, ad esempio images / image.png. Ora verrà visualizzato come un punto interrogativo blu in xcode, ma funzionerà nell'app.


2

Solo per aggiungere i miei $ 0,02 a questa domanda; Ho risolto questo problema usando immagini PNG invece di immagini JPG / JPEG.

Dopo aver convertito le immagini in PNG e averle sgretolate per ridurne un po 'le dimensioni, tutto ha funzionato bene.


2

Dopo aver investito molto tempo, ho ottenuto la soluzione: -

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 

ha funzionato per me grazie
Dilip Tiwari il

@DilipTiwari il tuo benvenuto :)
Vipul Kumar il

1

Ho affrontato lo stesso problema. Ho provato diverse soluzioni per questo, ma nulla si è rivelato utile. Mi sono quindi reso conto che l'immagine non era visibile solo quando ho installato l'app direttamente nel dispositivo e l'app è ancora connessa all'xcode. Se lo disconnetto e quindi apro l'app l'immagine era visibile come previsto. Potrebbe essere un bug di xcode.


1

Ho provato a pulire il progetto, rimuovere il png, rimuovere i vincoli non ha funzionato per me.

Ho appena fatto un'altra copia dell'immagine e rinominato la copia, quindi ho eliminato la vecchia immagine e ho aggiunto la nuova immagine (stessa, con il nome cambiato) che ho appena dato quell'immagine e ha funzionato per me.

Inoltre non sto usando Assets.xcassets, usando l'immagine in una cartella.


1

Ho provato così tante cose con questo (questo thread da solo sembra avere un milione di idee e metà di esse sono in conflitto). Il problema per me era che quando facevo cose come riavviare il dispositivo e Xcode, faceva apparire l'immagine per alcune sessioni dell'app, e poi si fermava (non ho idea del perché, ma WOW era fastidioso) .

Dopo innumerevoli ore, ho scoperto che la risposta di AG in questa discussione è quella corretta. L'unica cosa che stavo facendo di sbagliato era che stavo creando una nuova serie di immagini all'interno di xcasset, ma stavo ancora usando il nome dell'immagine all'interno di UIImageView all'interno dello storyboard invece di usare il nome della serie di immagini.

Per chiarire, ciò che dovresti fare è creare un nuovo set di immagini e denominarlo come "Avvia impostazioni predefinite", quindi aggiungere le tue immagini. Quindi, all'interno di UIImageView all'interno dello storyboard, usi l'immagine "Avvia-Predefinito" (non includendo un'estensione poiché non ne esiste alcuna poiché si tratta di un set di immagini).

Quando lo fai, l'immagine dovrebbe effettivamente apparire correttamente all'interno dello storyboard. Alcuni dicono che l'immagine verrà visualizzata vuota se non si utilizza l'estensione (.jpg o .png), ma suppongo che sia perché non usano il nome del set di immagini. Altri dicono che devi usare un'estensione come .png o .jpg, ma la chiave è creare il set di immagini all'interno di xcasset e quindi usare quel set di immagini all'interno dello storyboard. Se fatto correttamente, non dovrebbe esserci alcuna stranezza come un'immagine non visualizzata o la schermata di avvio che funziona solo un po 'di tempo (che richiede un riavvio).


1

Nel mio caso particolare, la schermata iniziale ha funzionato per il simulatore e altri dispositivi, ma ha smesso di funzionare per un dispositivo specifico. Questo mi ha portato a credere che si trattasse di alcuni dati di cache memorizzati da xcode (v10 e iPhone 7 v12.1).

Ho cancellato i dati derivati ​​su: ~/Library/Developer/Xcode/DerivedData/svuotando solo il contenuto della cartella, non eliminando la cartella. Ho quindi riavviato il mac e l'iPhone e ho ripulito e ricostruito il progetto, e ora viene visualizzato.

Non sono sicuro se tutto ciò fosse necessario, ma non volevo perdere altro tempo restringendolo, quindi l'approccio con la mazza sopra ha funzionato per me. Ma ovviamente dipende sempre dalla tua situazione specifica: la mia era specifica del dispositivo; per altri potrebbe essere l'immagine reale o il layout dello schermo di avvio ecc.


1

Il mio problema

Motivo: ho rinominato le immagini dopo aver trascinato in Xcode. Soluzione: non rinominare le immagini dopo averle trascinate in Xcode. Crea problemi per la comprensione di Xcode. Rinomina le immagini prima di trascinarle / aggiungerle in Xcode.

Spero che ti aiuti!


0

L'ho appena capito. L'immagine di lancio non veniva visualizzata, quando si avvia su un dispositivo (iPhone 6, 7+) o testFlight viene visualizzato uno schermo bianco. Correzione: rinominato "Landing_screen.png" in "Landing_screen" rimuovendo solo la parte .png. L'icona dell'immagine in Xcode è diventata un'icona bianca e nello storyboard della schermata di avvio l'immagine ora appare come un punto interrogativo. Ora viene visualizzata l'immagine Avvia e non la schermata bianca. La mia configurazione: sto usando Swift 3.1 con Xcode 8.3.1. In LaunchScreen.storyboard ho aggiunto una vista immagine semplice e allungata l'immagine per adattarla al controller della vista. Ho impostato i vincoli di layout automatico In alto / In basso / In primo piano / Trailing spazio su superview su 0 - vedere l'immagine sotto:

inserisci qui la descrizione dell'immagine


0

Nel mio caso, ho scoperto che alcune viste erano ancora collegate al controller di visualizzazione che ora era solo un controller di visualizzazione di base. Se controllo-clic sulla vista posso vedere i punti vendita con avvisi, tuttavia, gli avvisi non sono stati visualizzati in Xcode ed è per questo che ho avuto problemi a trovarli.


0

Questo sembra essere un problema di memorizzazione nella cache in XCode / iOS, ma esiste una soluzione semplice a questo: basta rinominare il file all'interno di Assets.xcassets, quindi la cache viene rigenerata.


0

Il mio primo errore è stato quello di aver creato un normale .storyboard, ribattezzato e definito come schermata di avvio nelle impostazioni del progetto. In questo caso ho avuto problemi di immagine. Sembra che in questo caso manchino alcune impostazioni, quindi ho appena creato un nuovo file tramite file-> nuovo e ho scelto direttamente la "Schermata di avvio" e poi ha funzionato.

Inoltre, ho pensato che i vincoli di layout non sono supportati nella schermata di avvio per qualche motivo. Forse all'inizio era così, non sono sicuro, ma ora i vincoli dovrebbero funzionare.

Forse questo aiuta chiunque.


0

Ho riscontrato questo stesso problema quando utilizzo lo storyboard di lancio per mostrare la schermata iniziale e dopo la ricerca ho scoperto che l'immagine che ho impostato nello storyboard di lancio ha dimensioni diverse e ho impostato la visualizzazione dell'immagine più grande della dimensione effettiva dell'immagine.

Quindi la soluzione che ho trovato è impostare la dimensione del contenuto della visualizzazione dell'immagine come aspetto adatto o impostare la dimensione della visualizzazione dell'immagine come dimensione dell'immagine.

Ad esempio, se la dimensione dell'immagine @ 1x è 200X200 rispetto alla visualizzazione dell'immagine dovrebbe essere 200X200 di quanto risolverai questo problema.

Come se impostassi una dimensione di visualizzazione dell'immagine più grande dell'immagine, l'immagine sarà inamidata e ciò non è permesso.

Se hai ancora dubbi, commenta qui e chiedi

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.