Mit der Xcode-Version 9.0 (9A235) versuche ich, ein Startbild für iPhoneX mit dem angeforderten 2436px × 1125px (Querformat) hinzuzufügen. Derzeit verwende ich ein Storyboard und es sieht so aus:
'launchimage' ist eine mit einem Image-Set verknüpfte Image-Ansicht:
Und das Image-Set lautet wie folgt:
Der einzige Ort, an dem ich ein Bild in iPhoneX-Größe erhalten kann, befindet sich in einem Launch-Image-Set:
Wenn ich jedoch versuche, ein Startbild in der Bildansicht im Storyboard auszuwählen, kann es nicht ausgewählt werden:
Irgendwelche Hilfe, wie man das Startbild in der richtigen Größe für iPhoneX hinzufügt oder zurück zum Start von Bildern? Ich würde das Bild in der richtigen Größe bevorzugen, nicht das gestreckte.
AKTUALISIEREN:
Ich möchte erklären, warum das Bild genau das gleiche Pixel pro Pixel sein soll. Gemäß den Richtlinien in https://developer.Apple.com/ios/human-interface-guidelines/icons-and-images/launch-screen/ mein Startbild ist eine statische Version der ersten Seite der App . Wenn das Startbild gestreckt ist, wird ein bemerkenswerter Wechsel von Startbild zu Erste Seite angezeigt. Welche Art ist das Ziel der Richtlinien? Apple empfiehlt, einen Storyboard-Start zu verwenden, es scheint jedoch, dass Sie deren Richtlinien nicht befolgen können. Eigentlich typisch.
Bei Verwendung von Xcode Version 9.1 (9B55), dank der Antworten (besonders Stoull), ist meine Erfahrung etwas anders. Meine ursprüngliche Frage war im Wesentlichen: "Wie bekomme ich ein Startbild (in Storyboard oder LaunchImage), das mit dem bg der ersten Spielszene übereinstimmt, ohne dass bei allen Auflösungen ein Neuskalieren erfolgt?"
Ich habe dieses Problem gelöst und es funktioniert mit LaunchImage. Es gibt jedoch Komplikationen.
Fügen Sie dem Ordner Assets ein LaunchImage hinzu, und geben Sie es in den Projekteinstellungen an:
Dann würden Sie folgendes erwarten:
ergebend:
ABER auf Build erhalten Sie die Warnung:
also brauchen Sie das für das LaunchImage:
ergebend:
und es gibt keine Warnung .... und LaunchImage funktioniert auf allen iPhones/iPads.
Die Bildgrößen sind:
iPhoneX (iPhone X Landscape iOS 11+): 2436 x 1125
Netzhaut HD 5,5 "(iPhone Landscape iOS 8,9): 2208 x 1242
2x (iPhone Portrait iOS 7-9): 640 x 960
Retina4 (iPhone Portrait iOS 7-9): 640 x 1136
1x (iPad Landscape iOS 7-9): 1024 x 768
2x (iPad Landscape iOS 7-9): 2048 x 1536
Das System ist eindeutig unordentlich und muss von Apple ordnungsgemäß überarbeitet werden.
Wenn Sie den LaunchImage.launchimage
für Launch verwendet haben, lautet die Lösung (in Xcdoe 9.0):
Wählen Sie Assets.xcassets
aus, klicken Sie mit der rechten Maustaste auf den mittleren Bereich und wählen Sie App Icons & launch Images
-> New iOS Launch Image
aus. Verschieben Sie dann die alten LaunchImage.launchimage
-Bilder zu den neuen und fügen Sie die Bildgröße mit 1125×2436 px
für das iPhoneX hinzu
Sie können auch das folgende json-Objekt zur Contents.json
-Datei hinzufügen, die sich im LaunchImage.launchimage
-Ordner Ihres alten Projekts befindet. Nach dem Xcode-Aktualisieren fügen Sie einfach ein 1125 × 2436px-Bild ein. Wenn Sie ein Querformat benötigen, können Sie ein anderes mit der Ausrichtung hinzufügen.
{
"extent" : "full-screen",
"idiom" : "iphone",
"subtype" : "2436h",
"minimum-system-version" : "11.0",
"orientation" : "portrait",
"scale" : "3x"
}
Für die 2018 lazy devs wie mich, die ein bestehendes Projekt mit einer alten Version von launchimage (ohne iPhoneX-Variante) haben, hier meine Lösung zur Unterstützung des iPhone X - dies ist eine Abkürzung für Sie.
{ "extent" : "full-screen", "idiom" : "iphone", "subtype" : "2436h", "filename" : "ipxportrait.png", "minimum-system-version" : "11.0", "orientation" : "portrait", "scale" : "3x" }, { "extent" : "full-screen", "idiom" : "iphone", "subtype" : "2436h", "filename" : "ipxlandscape.png", "minimum-system-version" : "11.0", "orientation" : "landscape", "scale" : "3x" },
Ersetzen Sie natürlich den Dateinamen durch entsprechende Bilder. Voila!
Wenn ich es richtig verstanden habe, verwenden Sie ein Storyboard als Startbildschirm mit Bildansicht, richtig?
Wenn ja, wählen Sie in Ihrem Launch Screen-Storyboard die Option als iPhone X aus:
Fügen Sie dann Ihre Bildansicht hinzu, sodass sie den gesamten Bereich wie folgt ausfüllt:
es ist wichtig, dies mit ausgewähltem iPhone X zu tun. Andernfalls würden Sie wahrscheinlich den Top Layout Guide ankoppeln, den Sie nicht möchten oben.
Ihre Konstanten sollten so aussehen (an Superview angeheftet):
Im Hochformat entspricht die Breite der Anzeige auf dem iPhone X dem Wert __. Die Breite der 4,7 "-Displays von iPhone 6, iPhone 7 und iPhone 8 . Das Display des iPhone X ist jedoch 145pt höher als ein 4,7" -Display. Dadurch entsteht etwa 20% zusätzlicher vertikaler Platz für Inhalte.
Wahrscheinlich ist Ihr Bild in Ordnung, aber versuchen Sie, (cmd + K) zu reinigen und das Projekt neu zu erstellen.
Wenn dies nicht hilft, entfernen Sie dieses Bild aus Xcode und fügen Sie es erneut hinzu, indem Sie diese Bilder in Xcode ziehen. Und baue es neu auf. Es sollte funktionieren.
Sie können ein größeres Bild als 3x
Bild in Ihrem Bildsatz behalten! Ich meine 1125px × 2436px
ist 3x
Auflösung von 375pt × 812pt
.
ersetzen Sie also in Ihrem Image-Set das alte 3x
-Image durch die Image-havign-Größe von 1125px × 2436px
und Ihr Startbildschirm (Storyboard oder Xib) wird sich nicht strecken, denke ich!
Ich entfernte die Bildansicht von xib und entfernte die abgeleiteten Daten & build . Wieder wurde die normale Bildansicht hinzugefügt und dann das Bild festgelegt, nachdem die Nebenbedingungen (führende, nachlaufende, obere, untere) zur Übersicht gesetzt wurden. Das hat gut funktioniert.
BEARBEITEN:
Ich wollte betonen, dass es möglich ist, Launch Image für iPhone X hinzuzufügen, aber @Christian Cerri bat um das Hinzufügen von NORMAL-Bildern zu Image View in LaunchScreen.storyboard speziell für iPhone X, was unmöglich ist.
Ursprüngliche Antwort:
Es gibt keine Möglichkeit, ein Bild speziell für das iPhone X zum Asset-Katalog hinzuzufügen (da @ 3x verwendet wird). Daher sollten Sie wahrscheinlich Startbilder dafür verwenden, wenn Sie ein anderes Bild nur für das iPhone X wünschen.