Ich habe eine App, die iOS8 und höher unterstützt, in Xcode 7 integriert und verwende ein XIB für einen Startbildschirm (ich habe keine Startbilder). Die Ansicht enthält ein einzelnes UILabel mit der App-Version und zwei UIImageViews mit Bildern, die beide in Images.xcassets vorhanden sind: Ein Logo und ein Begrüßungsbild.
Das UILabel und das Logo werden beim Starten der Anwendung korrekt angezeigt, das Begrüßungsbild jedoch nicht, wenn ich die App auf einem iPad Air 2 mit iOS9 ausführe. Ich habe auf einem Air und einem Mini mit iOS8- und iOS9-Simulatoren für iPad 2, iPad Air und iPad Air 2 getestet und das Bild wird in all diesen korrekt angezeigt.
Ich habe einige grundlegende Fehlerbehebungsmaßnahmen durchgeführt, um festzustellen, ob ich herausfinden kann, was gerade passiert, aber ich konnte es nicht lösen. Der einzige Unterschied zwischen dem funktionierenden und dem fehlerhaften Image besteht darin, wann ich es das addiere Vermögenswerte...
Hier ist ein Überblick über das, was ich weiß:
Die UIImageView für das Begrüßungsbild befindet sich an der richtigen Stelle in der richtigen Größe. Ich kann das sagen, weil ich die Hintergrundfarbe auf Grün gesetzt habe, nur um sicherzugehen. Die Ansicht ist vorhanden, aber das Bild wird nicht angezeigt. Ich gehe also davon aus, dass die Ansicht nicht schuld ist.
Wenn Sie UIImageView für das Begrüßungsbild so einstellen, dass auch das Logo verwendet wird, wird das Logo an der richtigen Stelle für die Ansicht angezeigt. Dies lässt mich auch annehmen, dass die Ansicht nicht schuld ist.
Das UIImage, das ich in der Begrüßungsbildansicht verwende, wird an anderer Stelle in der App verwendet und erscheint in diesen anderen Ansichten einwandfrei (das Logo-Bild wird auch an anderer Stelle in der App verwendet und erscheint in Ordnung). Ich gehe also davon aus, dass das Bild gültig ist und es kein Problem ist, es in anderen Ansichten anzuzeigen.
Ich habe bestätigt, dass die Einstellungen der UIImages für das Logo und den Splash in der xcassets-Datei identisch sind. Sie sind auf Universal, Beliebige Breite und Höhe sowie mehrere Skalierungsfaktoren eingestellt und werden standardmäßig gerendert. Es gibt einen Unterschied: Das Logo hat 1x, 2x und 3x Skalierung, während das Begrüßungsbild nur 1x und 2x hat, aber ich habe auch versucht, UIImages mit nur 1x und 1x und 2x Werten in der UIView zu verwenden, und sie funktionieren (falls vorhanden) vor einiger Zeit zum Projekt hinzugefügt).
Das Hinzufügen eines anderen Bilds einer anderen Größe oder eines anderen Formats (PNG und JPG) zu meinen xcassets und die Verwendung dieses UIImage in der UIImageView für das Begrüßungsbild wird ebenfalls nicht angezeigt.
Wenn Sie der XIB-Datei eine weitere UIImageView hinzufügen und ihr ein UIImage zuweisen, das bereits in den xcassets-Funktionen enthalten war, wird das Bild im Ladebildschirm angezeigt.
Das Kopieren und Umbenennen der für das Logo verwendeten Bilddateien und das Hinzufügen dieser Dateien zum Projekt und die Verwendung dieses UIImage in der Begrüßungsansicht werden ebenfalls nicht angezeigt.
Ich habe versucht, das Projekt zu bereinigen, den Entwicklungscomputer neu zu starten, die App aus Air 2 zu löschen und neu zu installieren, falls dies ein Problem sein sollte.
Diese letzten drei Schritte lassen mich glauben, dass es ein Problem mit Bildern gibt, die nach einem bestimmten Punkt in der Lebensdauer der Projektdatei hinzugefügt wurden. Während ich gestern auf Xcode 7 aktualisiert habe, wurde das Begrüßungsbild ursprünglich in Xcode 6 hinzugefügt, aber das Logo-Bild (ebenfalls in Xcode 6 hinzugefügt) wurde einige Monate zuvor hinzugefügt.
Ich habe die JSON-Dateien nach dem Logo und dem Begrüßungsbild durchsucht und sie scheinen dasselbe Format zu haben. Ich habe auch die pbxproj-Datei nach Unterschieden durchsucht und kann keine sehen.
Ich habe mich also gefragt, ob jemand eine Idee hat, warum auf dem Startbildschirm diese neuen Bilder, die ich speziell auf dem Air 2 hinzufüge, möglicherweise nicht angezeigt werden. Andere Fragen, die ich in Bezug auf Bilder gelesen habe, die nicht alle angezeigt werden, scheinen sich entweder auf Bilder zu starten oder auf Bilder in XIB-Dateien zu beziehen, denen Klassen zugeordnet sind, von denen keine hier relevant erscheint.