Ich habe eine App, die iOS8 und höher unterstützt, in Xcode 7 integriert, und ich verwende eine XIB für einen Startbildschirm (ich habe keine Startbilder). Die Ansicht enthält ein einzelnes UILabel mit der App-Version und 2 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 Startbild erscheint jedoch nicht, wenn ich die App auf einem iPad Air 2 mit iOS9 ausführen. 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 erscheint in allen diesen Bereichen korrekt.
Ich habe einige grundlegende Fehlerbehebungen durchgeführt, um zu sehen, ob ich herausfinden kann, was los ist, aber ich konnte es nicht lösen. Der einzige Unterschied, den ich zwischen dem funktionierenden Image und dem fehlgeschlagenen Image sehe, ist when I fügte es den Vermögenswerten hinzu ...
Hier ist ein Überblick über das, was ich weiß:
Die UIImageView für das Splash-Bild befindet sich an der richtigen Stelle in der richtigen Größe. Ich kann das sagen, weil ich die Hintergrundfarbe grün eingestellt habe, nur um sicher zu gehen. Die Ansicht ist vorhanden, aber das Bild wird nicht angezeigt. Ich gehe also davon aus, dass die Sicht nicht schuld ist.
Wenn Sie die 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 davon ausgehen, dass die Ansicht nicht schuld ist.
Der UIImage, den ich in der Splash-Image-Ansicht 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 in anderen Ansichten angezeigt wird, kein Problem.
Ich habe bestätigt, dass die Einstellungen der UIImages für das Logo und den Splash in der xcassets-Datei gleich sind. Sie sind auf Universal, Beliebige Breite und Höhe, mehrere Skalierungsfaktoren eingestellt und standardmäßig gerendert. Es gibt einen Unterschied - das Logo hat 1x, 2x und 3x Skalen, während das Splash-Image 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 (wenn sie waren) vor einiger Zeit zum Projekt hinzugefügt).
Das Hinzufügen eines anderen Bilds mit einer anderen Größe oder einem anderen Format (PNG und JPG) zu meinen Xcassets und die Verwendung dieses UIImage in der UIImageView für das Begrüßungsbild wird ebenfalls nicht angezeigt.
Durch das Hinzufügen eines weiteren UIImageView zur XIB-Datei und das Zuordnen eines UIImage, der bereits in den xcassets funktioniert, wird das Bild im Ladebildschirm angezeigt.
Das Kopieren und Umbenennen der für das Logo verwendeten Bilddateien und das Hinzufügen zum Projekt sowie die Verwendung dieses UIImage in der Splash-Ansicht können ebenfalls nicht angezeigt werden.
Ich habe versucht, das Projekt zu reinigen, den Entwicklungscomputer neu zu starten, die App aus Air 2 zu löschen und neu zu installieren, falls dies ein Problem war.
Diese letzten drei Schritte lassen vermuten, dass es ein Problem mit Bildern gibt, die nach einem bestimmten Zeitpunkt in der Projektdatei hinzugefügt wurden. Während ich gestern auf Xcode 7 aktualisiert habe, wurde das Splash-Image ursprünglich in Xcode 6 hinzugefügt, das Logo-Bild (ebenfalls in Xcode 6 hinzugefügt) wurde jedoch einige Monate zuvor hinzugefügt.
Ich habe die Json-Dateien nach dem Logo-Image und dem Splash-Image durchsucht und sie scheinen das gleiche Format zu haben. Ich habe auch die pbxproj-Datei durchforstet, um nach Unterschieden zu suchen, und ich kann keine sehen.
Ich wunderte mich also, ob jemand wusste, warum der Startbildschirm diese neuen Bilder, die ich gerade auf der Air 2 füge, möglicherweise nicht anzeigt? Andere Fragen, die ich im Zusammenhang mit Bildern gelesen habe, die nicht alle auftauchen, beziehen sich entweder auf Startbilder oder auf Bilder in XIB-Dateien, die über Klassen verfügen, die hier nicht relevant sind.
Schalten Sie es aus und wieder ein.
Ernsthaft, starte das Gerät neu - das hat es für mich behoben.
Folgendes funktionierte nicht:
Ältere Beobachtungen:
Genau wie die anderen:
Woran ich mich erinnere, als ich den ersten Build, bei dem es nicht mehr funktionierte, auslöste, war es, das iPhone abzutrennen, während es lief. (Nicht sicher, ob es damit zusammenhängt.)
Der git reset behebt das Problem jedoch nicht (zusammen mit allen sauberen Schritten, die nicht funktionieren), sagt mir, dass dies irgendwo anders zwischengespeichert werden muss. Möglicherweise in einer der .gitignored-Dateien? (Ich benutze Git ignoriere die Datei für Xcode-Projekte )
Eine Problemumgehung, die für eine UIImageView (in UIView, die drei hat) funktionierte, aber nicht für die anderen, bestand darin, das Bild in eine .xcassets-Datei zu stellen. Durch das Wiederherstellen der einfachen Bilddatei wurde der Fix nicht rückgängig gemacht. (Fühlt sich wirklich wie ein Caching-Fehler an.)
UPDATE: Siehe oben - das Neustarten des Geräts wurde behoben. Ich habe das Gefühl, dass falsche Bitmap-Daten auf dem Gerät selbst zwischengespeichert werden.
"Die Lösung für mich bestand einfach darin, sicherzustellen, dass das Kontrollkästchen" Grafikkontext löschen "für UIImageView im Storyboard deaktiviert ist. Das Ändern dieses Problems hat es für mich behoben." Bekam es von Apple Entwicklerforum
Ich hatte genau das gleiche Problem auf einem iPhone 6.
Die seltsame Tatsache ist, dass ich ein anderes Bild aus meinen images.xcassets verwenden konnte, das die gleiche Größe, Komprimierung, Farbraum ... hatte.
Ich kann nicht finden, warum es nicht funktioniert, aber ich habe eine Lösung gefunden: Platzieren Sie Ihre Datei einfach außerhalb Ihrer images.xcassets und verwenden Sie ihren vollständigen Namen (mit Erweiterung) im Interface Builder
Ich hoffe das hilft !
In der folgenden Reihenfolge von Vorgängen wurde das Problem für Xcode 7.3.1 und iOS 9.3.4 behoben.
Viele andere Antworten schlagen vor, dass ein Neustart von Geräten und/oder ein Neuaufbau und/oder eine Neuinstallation die Lösung ist.
Während diese Antworten für einige von uns funktionieren, liegt der Grund dafür, dass die App gezwungen ist, zwischengespeicherte Snapshots "neu aufzunehmen" oder "neu zu erstellen".
Zwischengespeicherte Momentaufnahmen werden von Apps verwendet, um Bilder anzuzeigen, bevor unterstützende Daten in den Speicher geladen werden, einschließlich des Bestandskatalogs, der Storyboard-Bilder enthält.
This SO answer by @jaga bietet die Lösung, aber nicht den Grund dafür, warum UIImageViews im Startbildschirm auf dem Gerät (aber nicht im Simulator) fehlen.
Hintergrund
Vor kurzem habe ich versucht, eine benutzerdefinierte Schriftart in meiner Datei "Launch Screen.storyboard" zu verwenden.
Der Grund, warum ich nicht klar wurde, nachdem ich this SO answer von @TimCamber gelesen hatte, veranlasste mich zu etwas mehr Forschung und Tests.
Der Grund, warum eine benutzerdefinierte Schriftart nicht in meiner Startbildschirm-Storyboard-Datei enthalten ist, ist derselbe Grund, warum ein Bild in einem Asset-Katalog nicht enthalten ist.
Die App erstellt Schnappschüsse vom Startbildschirm der App aus Ihrer Launch Screen-Storyboard-Datei und speichert sie (derzeit) in Ihrem App-Bundle:
/Library/Caches/Snapshots/<<app_bundle>>/
und/Library/Caches/Snapshots/<<app_bundle>>/downscaled/
. Dieser Vorgang ist abgeschlossen, bevor unterstützende Dateien geladen werden, einschließlich benutzerdefinierter Schriftarten und des Bestandskatalogs.
Lösung
Wie bereits in @ jagas Lösung erwähnt, ist es buchstäblich alles, was benötigt wird:
Ich sah das gleiche Problem. Das Problem wurde nur durch einen Neustart des Geräts (iPhone 6) und die Wiederherstellung der App auf dem Gerät behoben. Ich habe viele andere Tipps und Vorschläge ausprobiert, aber sonst hat nichts funktioniert. Nur Neustart + Wiederaufbau half.
Ich hatte das gleiche für App von TestFlight installiert. App löschen -> dann iPhone neu starten -> dann App neu installieren funktioniert für mich . App einfach neu installieren oder Gerät neu starten, hat nicht geholfen.
Meine Lösung @iOS 11.x:
.jpg
image anstelle von .png
. Ich denke, die Dateigröße ist wichtig..xcassets
im Projektverzeichnis ab.Ich hatte das gleiche Problem, aber das Neustarten des Geräts half nicht. Was für mich funktionierte, war das Löschen von UIImageView aus dem Launch Storyboard und das Hinzufügen eines neuen.
Haben Sie versucht, das Gerät aus- und wieder einzuschalten? TU es.
Bringen Sie Bilder aus Image.xcassets und fügen Sie sie erneut zum Projekt hinzu. Es hat für mich funktioniert.
Ich verwende das iPhone 5s-Gerät, auch dieses Problem stoße auf.
Ich repariere es durch:
Entfernen Sie die Laufwerksdaten
Reinigen Sie das Projekt
Starten Sie Xcode neu
Entfernen Sie das Projekt von meinem Gerät
Starten Sie die 5s neu.
Ich denke, es ist etwas falsches an Xcode, um Speicher zu verwenden. Das System kann einen kleinen Speicherplatz für Xcode zuweisen, da Xcode beim Erstellen des Lunch-Bildes nicht funktioniert.
es hat für mich gearbeitet.
Zuerst in xcode clean de project.
Wenn Sie den Simulator verwenden, löschen Sie die App und starten Sie sie erneut.
Wenn Sie ein Gerät verwenden, löschen Sie die App und starten Sie das Gerät neu.
Dieses genaue Problem hatte ich auch in Xcode 7 mit iPad- und iPhone-Geräten. Obwohl es keinen Sinn macht, konnte ich es meistens umgehen, indem ich nicht nur das Bild, sondern auch das hervorgehobene Bild in der Bildansicht auf dasselbe Bild in meinen images.xcassets setzte.
Ich denke, Launchscreen unterstützt nur Bilder in Assets.xcassets.
Wählen Sie ImageView aus und entfernen Sie dann die Image-Erweiterung (.png oder .jpg) im Attribut-Inspector> Image-Ansicht> Image> Image-Name.
Auf launchscreen.storyboard wird das Bild nicht angezeigt, es befindet sich jedoch im Gerät. Das hat bei mir funktioniert.
Es schien ein Bug von iOS zu sein. Wie manchmal verschwand die Systemanimation.
Jetzt starte ich das iPhone einfach neu und es funktioniert für mich.
In meinem Fall war es der Bildname .
Ich habe ein Bild mit dem Namen [email protected]
zu LaunchScreen.xib hinzugefügt - einem meiner alten Startbildschirme, nur zum Testen. Ich baute auf dem iPhone X Simulator auf, das Bild wurde nicht angezeigt.
Das Ändern des Namens in etwas Neutrales (MyImage.png) hat das Problem behoben.
Es scheint, dass der @2x
ebenso Teil des Problems war wie der -568h
. Was auf einem [email protected]
-Gerät Sinn macht.
Die Lösung ist einfach JPG anstelle von PNG zu verwenden.
App von Handy entfernen und dann Handy neu starten und App erneut installieren. Jetzt werden die Probleme gelöst
Der Neustart von Xcode hat es für mich getan.
Was hat nicht tat es:
Ich hatte dieses Problem in iOS 10 auf einem iPhone 6 und auch im Simulator. Mein Bild war in einem Ordner und das schien das Problem zu sein. Ich entfernte das Bild aus dem Ordner in Xcode und legte es in das Basisverzeichnis des Projekts, wodurch das Problem behoben wurde.
Ich habe das gleiche Problem mit imageView ein Startbildschirm-Storyboard. Ich entfernte die Referenz des Bildes aus dem Projekt, benannte mein Bild um und fügte es erneut zum Projekt hinzu. Alles funktioniert perfekt.
Kann auch 1. Projektbild löschen 2. Bildname ändern 3. Dateibild zum Projekt hinzufügen
Es hat für mich funktioniert.
Ich erlebe das Gleiche. Ich ändere die Bildauflösung von 300 Pixel/Zoll und ändere sie in 72. Dies funktioniert für mich.
Gelöst!
Das einzige, was für mich funktionierte, war das Löschen der ViewController
aus LaunchScreen.storyboard
und das Erstellen einer neuen ViewController
-Einstellung auf
Ist der Anfangsansicht-Controller
So einfach ist das :)
Als nächstes half mir:
Auch sehr wichtig : Überprüfe, ob dein xib nicht in einem anderen Tab geöffnet ist, das kann es auch verursachen!
Der Bildname ist das Problem . Benennen Sie den im Storyboard des Startbildschirms verwendeten Bildnamen um Stellen Sie sicher, dass Sie keine anderen Zeichen als alphanumerische Zeichen verwenden (verwenden Sie nicht "_- & @") Für gearbeitet Ich mag einen Zauber ..
Ich bin auch auf dieses Problem gestoßen. Das Löschen aller Inhalte und Einstellungen von SIMULATOR hat für mich funktioniert.
In meinem Fall gehe ich einfach zur App ZIELE -> Allgemein -> App-Symbole und zum Starten von Bildern -> Bildquelle starten Dann wählen Sie die Quelle, wo ich die Bilder platziere Ich hoffe, das wird Ihnen helfen
Für mich bestand das Problem darin, dass die Größe meines Launchscreen um 1 Pixel (2209x1242 statt 2208x1242) abnahm. Es wurde korrigiert, das Gerät neu gestartet und die App neu erstellt.
Ich habe eine einfache, aber radikale Lösung gefunden, die für mich funktioniert hat:
1 - Löschen Sie die Datei: LaunchScreen.storyboard und verschieben Sie sie in den Papierkorb.
2 - Produkt -> Reinigen
3 - Erstellen Sie eine neue Startbildschirmdatei mit dem Namen: LaunchScreen.storyboard, und fügen Sie Ihre Bilder ein
4 - Speichern und bauen
Das hat für mich funktioniert, nachdem ich stundenlang komplexe Methoden ausprobiert hatte ... Es scheint, dass mein LaunchScreen.storyboard schreibgeschützt war und nicht gespeichert werden konnte oder ein seltsamer Zwischenspeicherungsprozess es blockierte.
"myProject" ist mit vielen Bildern aus Images.xcassets initiiert. Nach dem Löschen und Wiederherstellen von „Assets.xcasset“ aus dem Projekt bin ich auf fehlende Bilder gestoßen.
Ich bin auf dieses fehlende Bildproblem gestoßen und habe folgende Methoden ausprobiert:
Lösung um mein Problem zu beheben:
Wählen Sie Ihre Bilddatei aus dem linken Menü aus, und wählen Sie im rechten Menü der Dienstprogramme "Dateiinspektor anzeigen". Stellen Sie unter Zielmitgliedschaft sicher, dass Ihr Ziel ausgewählt ist. Ich habe das Bild mit der Auswahl des Ziels hinzugefügt, weiß aber nicht, warum es nicht ausgewählt wurde. Ich habe alle Lösungen ausprobiert, neu gestartet, gelöscht usw. Niemand funktioniert. Genau das hat funktioniert. Hoffe es hilft jemand anderem.