ios - ändern - news widget iphone verschwunden




UIImageView fehlende Bilder im Startbildschirm auf dem Gerät (20)

Ich habe eine App, die iOS8 und höher unterstützt, die in Xcode 7 integriert ist, und ich verwende ein 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 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 getestet, auf denen iOS8 und iOS9-Simulatoren für iPad 2, iPad Air und iPad Air 2 ausgeführt werden, und das Bild wird in all diesen Fällen korrekt angezeigt.

Ich habe einige grundlegende Fehlerbehebungsmaßnahmen durchgeführt, um festzustellen, ob ich herausfinden konnte, was gerade passiert, aber ich konnte es nicht lösen. Der einzige Unterschied, den ich zwischen dem funktionierenden Image und dem fehlgeschlagenen Image feststellen kann, ist, dass ich es dem Image hinzugefügt habe Vermögenswerte...

Hier ist ein Überblick über das, was ich weiß:

  • Die UIImageView für das Begrüßungsbild befindet sich an der richtigen Stelle und in der richtigen Größe. Ich kann das sagen, weil ich die Hintergrundfarbe auf Grün gesetzt habe, nur um sicherzugehen. Die Ansicht ist da, aber das Bild wird nicht angezeigt. Ich gehe also davon aus, dass die Ansicht nicht schuld ist.

  • Wenn Sie UIImageView so einstellen, dass das Begrüßungsbild auch das Logo verwendet, wird das Logo an der richtigen Stelle für die Ansicht angezeigt. Dies lässt mich auch vermuten, dass die Ansicht nicht schuld ist.

  • Das UIImage, das ich in der Startbildansicht verwende, wird an anderer Stelle in der App verwendet und in diesen anderen Ansichten gut angezeigt (das Logo wird auch an anderer Stelle in der App verwendet und gut angezeigt). Daher gehe ich davon aus, dass das Bild gültig ist und dass es in anderen Ansichten angezeigt wird, ist kein Problem.

  • 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 Skalierungen, während das Startbild nur 1x und 2x hat, aber ich habe auch versucht, UIImages mit nur 1x und 1x und 2x Werten in UIView zu verwenden, und sie funktionieren (wenn sie es waren) 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 das Verwenden dieses UIImage in der UIImageView für das Begrüßungsbild wird ebenfalls nicht angezeigt.

  • Wenn Sie der XIB-Datei ein weiteres UIImageView hinzufügen und ein UIImage zuweisen, das sich bereits in den xcassets works befindet, wird das Bild im Ladebildschirm angezeigt.

  • Das Kopieren und Umbenennen der für das Logo verwendeten Bilddateien und das Hinzufügen zu dem Projekt unter Verwendung dieses UIImage in der Begrüßungsansicht schlägt ebenfalls fehl.

  • Ich habe versucht, das Projekt zu bereinigen, den Entwicklungscomputer neu zu starten, die App aus Air 2 zu löschen und sie erneut zu installieren, falls dies ein Problem darstellt.

Diese letzten drei Schritte lassen mich glauben, dass es ein Problem mit Bildern gibt, die nach einem bestimmten Zeitpunkt in der Lebensdauer der Projektdatei hinzugefügt wurden. Während ich gestern auf Xcode 7 aktualisiert habe, wurde das Startbild 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-Bild und dem Splash-Bild durchsucht und sie scheinen dasselbe Format zu haben. Ich habe auch die pbxproj-Datei nach Unterschieden durchsucht und sehe keine.

Ich habe mich gefragt, ob jemand eine Ahnung hat, warum auf dem Startbildschirm möglicherweise nicht die neuen Bilder angezeigt werden, die ich speziell für Air 2 hinzufüge. Andere Fragen, die ich in Bezug auf Bilder gelesen habe, die nicht alle angezeigt werden, scheinen sich entweder auf Bilder starten oder auf Bilder in XIB-Dateien zu beziehen, denen Klassen zugeordnet sind, von denen keine hier relevant erscheint.


"Die Lösung bestand für mich einfach darin, sicherzustellen, dass das Kontrollkästchen" Grafikkontext löschen "für UIImageView im Storyboard deaktiviert ist. Durch einfaches Ändern wurde das Problem für mich behoben." Keine anderen Lösungen haben für mich funktioniert. Habe es vom Apple Developer Forum bekommen


Bildname ist das Problem. Benennen Sie den im Storyboard des Startbildschirms verwendeten Bildnamen um. Stellen Sie sicher, dass Sie kein anderes Zeichen als alphanumerisch verwenden (verwenden Sie nicht "_- & @"). Hat für mich wie ein Zauber gewirkt.


Das Neustarten von Xcode hat es für mich getan.

Was hat es nicht getan:

  • Bereinigen Sie den Build-Ordner
  • Gerät oder Simulator neu starten (Bild war auch nicht sichtbar)

Das ist zu wichtig Muss leer sein ! Launch Screen File


Eine einfache Lösung ist die Verwendung von JPG anstelle von PNG.


Es hat für mich funktioniert.

Zuerst in xcode das Projekt bereinigen.

Wenn Sie den Simulator verwenden, löschen Sie die App und starten Sie sie neu.

Wenn Sie ein Gerät verwenden, löschen Sie die App und starten Sie das Gerät neu.


Haben Sie versucht, das Gerät aus- und wieder einzuschalten? TU es.


Ich benutze das iPhone 5s Gerät, auch dieses Problem zu erfüllen.

Ich repariere es durch:

  • Laufwerksdaten entfernen

  • Bereinigen Sie das Projekt

  • Starten Sie Xcode neu

  • Entfernen Sie das Projekt von meinem Gerät

  • Starten Sie die 5s neu.

Ich denke, es stimmt etwas nicht mit Xcode, wenn der Speicher verwendet wird. Möglicherweise wird dem System ein wenig Speicher für Xcode zugewiesen, da beim Zeichnen von Xcode das Mittagessen-Image fehlgeschlagen ist.


Ich erlebe das gleiche. Ich ändere die Bildauflösung von 300 Pixel / Zoll auf 72. Das funktioniert bei mir.


Ich habe das gleiche Problem mit imageView, einem Storyboard für den Startbildschirm. Ich habe die Referenz des Bildes aus dem Projekt entfernt, mein Bild umbenannt und es erneut zum Projekt hinzugefügt. Alles funktioniert perfekt.


Ich hatte auch genau dieses Problem in Xcode 7 mit iPad- und iPhone-Geräten. Obwohl es keinen Sinn macht, konnte ich es die meiste Zeit umgehen, indem ich nicht nur das Bild, sondern auch das hervorgehobene Bild in der Bildansicht auf dasselbe Bild in meinen images.xcassets einstellte.


Ich hatte das gleiche Problem, aber ein Neustart des Geräts half nicht. Für mich hat es funktioniert, das UIImageView aus meinem Start-Storyboard zu löschen und ein neues hinzuzufügen.


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 habe das Bild aus dem Ordner in Xcode entfernt und es in das Basisverzeichnis des Projekts gestellt, wodurch das Problem behoben wurde.


Ich hatte genau das gleiche Problem auf einem iPhone 6.

Die sehr seltsame Tatsache ist, dass ich ein anderes Bild aus meinen images.xcassets verwenden konnte, das die gleiche Größe, Komprimierung, den gleichen Farbraum hatte ...

Ich kann nicht herausfinden, warum es nicht funktioniert, aber ich habe eine Lösung gefunden: Legen Sie Ihre Datei einfach außerhalb Ihrer images.xcassets ab und verwenden Sie den vollständigen Namen (mit der Erweiterung) in Interface Builder

Ich hoffe das hilft !


In meinem Fall war es der Bildname .
Ich habe ein Bild mit dem Namen [email protected] zu LaunchScreen.xib hinzugefügt - einer meiner alten Startbildschirme nur zu Testzwecken. Ich habe auf dem iPhone X Simulator gebaut, das Bild wurde nicht angezeigt.

Das Ändern des Namens in etwas Neutrales (MyImage.png) löste das Problem.

Es scheint, dass das @2x Teil des Problems war wie das -568h . Was auf einem [email protected] Gerät Sinn macht.


In vielen anderen Antworten wird empfohlen, Geräte neu zu starten und / oder neu zu erstellen und / oder neu zu installieren.

Während diese Antworten für einige von uns funktionieren, liegt der Grund dafür darin, dass die App gezwungen ist, zwischengespeicherte Snapshots erneut zu erstellen oder neu zu erstellen.

Zwischengespeicherte Snapshots werden von Apps zum Präsentieren von Bildern verwendet, bevor unterstützende Daten in den Speicher geladen werden, einschließlich des Asset-Katalogs, der Storyboard-Bilder enthält.

Diese SO-Antwort von @jaga bietet die Lösung, aber nicht den Grund, warum UIImageViews im Startbildschirm auf dem Gerät fehlen (aber nicht im Simulator).

Hintergrund

Kürzlich habe ich versucht, eine benutzerdefinierte Schriftart in meiner Datei "Launch Screen.storyboard" zu verwenden.

Der Grund, warum ich nicht klar wurde, nachdem ich diese SO-Antwort von @TimCamber gelesen hatte, veranlasste mich, etwas mehr zu recherchieren und zu testen.

Der Grund, warum eine benutzerdefinierte Schriftart nicht in meiner Launch Screen Storyboard-Datei enthalten ist, ist derselbe Grund, warum ein Bild in einem Asset-Katalog nicht enthalten ist ...

Die App erstellt aus Ihrer Startbildschirm-Storyboard-Datei Portrait- und Landscape-Snapshots des Startbildschirms der App und speichert sie (derzeit) in Ihrem App-Bundle hier:

  • /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 Asset-Katalogs.

Lösung

Wie bereits erwähnt, müssen Sie nach der @ jaga-Lösung lediglich Folgendes tun:

  1. (alte Schule) Fügen Sie eine Bilddatei (.PNG) zum Bundle Ihrer App hinzu (wie Sie aus dem folgenden Screenshot ersehen können, habe ich die Bilddatei unter dem Unterverzeichnis "Unterstützende Dateien" in einem Unterverzeichnis "Bilder" hinzugefügt)

  1. Verweisen Sie auf dieses Bild in Ihrem UIImageView-Objekt in der Storyboard-Datei für den Startbildschirm ...


Meine Lösung @iOS 11.x:

  • Verwenden Sie ein .jpg Bild anstelle von .png . Ich denke, dass die Größe der Bilddatei wichtig ist.
  • (Optional) Legen Sie die Bilddatei im Projektverzeichnis und nicht in .xcassets .

Wählen Sie die ImageView aus und entfernen Sie die Image-Erweiterung (.png oder .jpg) auf der Registerkarte des Attributinspektors> Image-Ansicht> Image> Image-Name.

Auf dem launchscreen.storyboard wird das Bild nicht angezeigt, es befindet sich jedoch auf dem Gerät. Das hat bei mir funktioniert.


Weiter hat mir geholfen:

  • Ändern Sie "Launch Screen File" in eine andere xib
  • starte die App
  • xib zurück ändern

Ebenfalls sehr wichtig : Stellen Sie sicher, dass Ihr xib nicht in einem anderen Tab geöffnet ist, das kann auch dazu führen!


App von Handy entfernen und Handy neu starten und App erneut installieren. Jetzt werden die Probleme gelöst





launch-screen