J'ai une application qui prend en charge iOS8 et versions ultérieures, intégrée à Xcode 7 et j'utilise un XIB pour un écran de lancement (je n'ai pas d'images de lancement). La vue contient un seul UILabel avec la version de l'application et 2 UIImageViews avec des images présentes dans Images.xcassets: un logo et une image de démarrage.
L'UILabel et l'image du logo s'affichent correctement lorsque je lance l'application, mais l'image de démarrage ne s'affiche pas si j'exécute l'application sur un iPad Air 2 avec iOS9. J'ai testé sur un Air et un Mini exécutant des simulateurs iOS8 et iOS9 pour iPad 2, iPad Air et iPad Air 2 et l'image apparaît correctement dans tous ceux-ci.
J'ai effectué un dépannage de base pour voir si je pouvais comprendre ce qui se passait, mais je n'ai pas pu le résoudre et la seule différence que je peux voir entre l'image qui fonctionne et celle qui échoue, c'est quand je l'ai ajoutée au les atouts...
Voici un aperçu de ce que je sais:
L'UIImageView pour l'image de démarrage est au bon endroit, à la bonne taille. Je peux le dire parce que j'ai défini sa couleur d'arrière-plan sur vert juste pour être sûr. La vue est là, mais l'image n'apparaît pas. Je suppose donc que la vue n'est pas à blâmer.
Si vous définissez UIImageView pour que l'image de démarrage utilise également l'image du logo, l'image du logo apparaît au bon endroit pour l'affichage. Cela m'amène également à supposer que la vue n'est pas à blâmer.
L'image UII que j'utilise dans la vue de l'image de démarrage est utilisée ailleurs dans l'application et apparaît correctement dans ces autres vues (l'image du logo est également utilisée ailleurs dans l'application et semble correcte). Je suppose donc que l'image est valide et qu'elle apparaît dans d'autres vues n'est pas un problème.
J'ai confirmé que les paramètres des UIImages pour le logo et le splash dans le fichier xcassets sont les mêmes. Ils sont définis sur Universel, N'importe quelle largeur et hauteur, plusieurs facteurs d'échelle, rendus par défaut. Il y a une différence - le logo a des échelles 1x, 2x et 3x tandis que l'image de démarrage n'a que 1x et 2x, mais j'ai également essayé d'utiliser des images UII avec seulement des valeurs 1x et 1x et 2x dans UIView et elles fonctionnent (si elles étaient ajouté au projet il y a quelque temps).
L'ajout d'une autre image d'une taille ou d'un format différent (PNG et JPG) à mes xcassets et l'utilisation de cet UIImage dans l'UIImageView pour l'image de démarrage ne parviennent pas non plus à s'afficher.
Ajouter un autre UIImageView au fichier XIB et lui allouer un UIImage qui était déjà dans les travaux xcassets, l'image apparaît dans l'écran de chargement.
Copier et renommer les fichiers image utilisés pour le logo et les ajouter au projet, puis utiliser cet UIImage dans la vue de démarrage ne s'affiche pas non plus.
J'ai essayé de nettoyer le projet, de redémarrer la machine de développement, de supprimer l'application de l'Air 2 et de la réinstaller juste au cas où cela poserait un problème.
Ces trois dernières étapes m'amènent à croire qu'il y a un problème avec les images ajoutées après un certain point dans la durée de vie du fichier de projet. Hier, alors que je mettais à jour Xcode 7, l'image de démarrage a été ajoutée à l'origine dans Xcode 6, mais l'image du logo (également ajoutée dans Xcode 6) a été ajoutée quelques mois auparavant.
J'ai regardé les fichiers json pour l'image du logo et l'image de démarrage et ils semblent avoir le même format. J'ai également parcouru le fichier pbxproj à la recherche de différences et je n'en vois aucune.
Je me demandais donc si quelqu'un savait pourquoi l'écran de lancement pourrait ne pas afficher ces nouvelles images que j'ajoute spécifiquement sur l'Air 2? Les autres questions que j'ai lues concernant les images n'apparaissant pas semblent toutes se rapporter soit à Launch Images, soit à des images dans des fichiers XIB qui ont des classes associées, aucune des deux ne semble pertinente ici.