Ho un'app che supporta iOS8 e versioni successive, integrata in Xcode 7 e sto usando un XIB per una schermata di avvio (non ho immagini di avvio). La vista contiene un singolo UILabel con la versione dell'app e 2 UIImageViews con immagini entrambe presenti in Images.xcassets: un logo e un'immagine splash.
UILabel e l'immagine del logo appaiono correttamente all'avvio dell'applicazione, ma l'immagine splash non funziona se eseguo l'app su un iPad Air 2 con iOS9. Ho testato su un Air e un Mini con iOS8 e simulatori iOS9 per iPad 2, iPad Air e iPad Air 2 e l'immagine appare correttamente in tutti questi.
Ho eseguito una risoluzione dei problemi di base per vedere se riuscivo a capire cosa stava succedendo ma non sono stato in grado di risolverlo e l'unica differenza che posso vedere tra l'immagine che funziona e quella che non funziona è quando l' ho aggiunta alla risorse...
Ecco una carrellata di quello che so:
UIImageView per l'immagine splash è nella posizione corretta, alla dimensione corretta. Posso dirlo perché ho impostato il colore di sfondo su verde solo per essere sicuro. La vista è lì, ma l'immagine non appare. Quindi suppongo che la vista non sia da biasimare.
L'impostazione di UIImageView per l'immagine splash per utilizzare anche l'immagine del logo fa apparire l'immagine del logo nella posizione corretta per la vista. Questo mi porta anche a ritenere che la vista non sia da biasimare.
Il UIImage che sto usando nella vista splash immagine è usato altrove nell'app e appare bene in quelle altre viste (l'immagine del logo è usata anche altrove nell'app e appare bene). Quindi suppongo che l'immagine sia valida e vederla apparire in altre viste non è un problema.
Ho confermato che le impostazioni di UIImages per il logo e lo splash nel file xcassets sono le stesse. Sono impostati su Universale, Qualsiasi larghezza e altezza, più fattori di scala, resi come impostazione predefinita. C'è una differenza: il logo ha scale 1x, 2x e 3x mentre l'immagine splash ha solo 1x e 2x, ma ho anche provato a usare UIImages con solo i valori 1x e 1x e 2x in UIView e funzionano (se lo fossero aggiunto al progetto qualche tempo fa).
L'aggiunta di un'altra immagine di dimensioni o formato diversi (PNG e JPG) ai miei xcasset e l'utilizzo di UIImage in UIImageView per l'immagine splash non riesce a essere visualizzato.
Aggiungendo un altro UIImageView al file XIB e assegnandolo a un UIImage che era già nelle xcasset funziona, l'immagine appare nella schermata di caricamento.
Copiare e rinominare i file di immagine utilizzati per il logo e aggiungerli al progetto, quindi anche utilizzare quel UIImage nella vista splash non riesce a essere visualizzato.
Ho provato a ripulire il progetto, riavviare la macchina di sviluppo, eliminare l'app da Air 2 e reinstallarla nel caso in cui fosse un problema.
Questi ultimi tre passaggi mi portano a credere che ci sia qualche problema con le immagini aggiunte dopo un certo punto della vita del file di progetto. Mentre ieri ho aggiornato a Xcode 7, l'immagine splash è stata inizialmente aggiunta in Xcode 6, ma l'immagine del logo (aggiunta anche in Xcode 6) è stata aggiunta alcuni mesi prima.
Ho esaminato i file json per l'immagine del logo e l'immagine iniziale e sembrano avere lo stesso formato. Ho anche cercato il file pbxproj alla ricerca di differenze e non ne vedo nessuna.
Quindi mi chiedevo se qualcuno avesse idea del perché la schermata di avvio potrebbe non mostrare queste nuove immagini che sto aggiungendo su Air 2 in particolare? Altre domande che ho letto in relazione alle immagini che non compaiono sembrano riguardare sia Avvia immagini, sia immagini in file XIB che hanno classi associate, nessuna delle quali sembra rilevante qui.