À l’aide de Xcode version 9.0 (9A235), j’essaie d’ajouter une image de lancement pour iPhoneX au format demandé de 2436px × 1125px (paysage). Actuellement, j'utilise un Storyboard et cela ressemble à ceci:
'launchimage' est une vue d'image liée à un ensemble d'images:
Et l'ensemble d'images est comme suit:
Le seul endroit où je reçois une image de la taille d'un iPhoneX est un ensemble d'images de lancement:
Mais lorsque j'essaie de sélectionner une image de lancement dans la vue d'image du scénarimage, elle ne peut pas être sélectionnée:
Avez-vous de l’aide pour ajouter une image de lancement de taille correcte pour iPhoneX ou revenez-vous à Lancer images? Je préférerais l'image de taille correcte, pas une image étirée.
METTRE À JOUR:
Je voudrais expliquer pourquoi je veux que l'image soit exactement le même pixel par pixel. Suivre les instructions dans https://developer.Apple.com/ios/human-interface-guidelines/icons-and-images/launch-screen/ mon image de lancement est une version statique de la première page de l'application. . Si l'image de lancement est étirée, il est possible de passer de l'image de lancement à la première page. Quel genre de défaites l'objet des lignes directrices. Apple recommande d'utiliser un lancement de storyboard, mais il semble que vous ne puissiez pas suivre leurs instructions si vous le faites. Typique, vraiment.
En utilisant Xcode version 9.1 (9B55), grâce aux réponses ci-dessus (en particulier à Stoull), mon expérience est toutefois légèrement différente. Ma question initiale était fondamentalement la suivante: "Comment obtenir une image de lancement (dans le storyboard ou dans LaunchImage) qui correspond au bg de la première scène de jeu sans un coup de mise à l'échelle sur toutes les résolutions?"
J'ai résolu ce problème et cela fonctionne avec LaunchImage. Cependant, il y a des complications.
Ajoutez une LaunchImage au dossier Assets, puis spécifiez-la dans les paramètres du projet:
Alors vous vous attendez à faire ceci:
résultant en:
MAIS sur Build, vous obtenez l'avertissement:
vous en avez donc besoin pour la LaunchImage:
résultant en:
et il n'y a pas d'avertissement .... et LaunchImage fonctionne sur tous les iPhones/iPads.
Les tailles d'image sont:
iPhoneX (iPhone X Paysage iOS 11+): 2436 x 1125
Retina HD 5.5 "(Paysage iPhone 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 Paysage iOS 7-9): 1024 x 768
2x (paysage iPad iOS 7-9): 2048 x 1536
Le système est clairement en désordre et nécessite une refonte adéquate par Apple.
Si vous avez utilisé le LaunchImage.launchimage
pour le lancement, la solution est (dans Xcdoe 9.0):
Sélectionnez Assets.xcassets
, faites un clic droit sur le volet du milieu, sélectionnez App Icons & launch Images
-> New iOS Launch Image
. Puis déplacez les anciennes images LaunchImage.launchimage
vers les nouvelles et ajoutez la taille d’image avec 1125×2436 px
pour iPhoneX .
En outre, vous pouvez ajouter l'objet json suivant au fichier Contents.json
qui, dans le dossier LaunchImage.launchimage
de votre ancien projet。Once Xcode est actualisé, il suffit d'ajouter une image 1125 × 2436px. Si vous avez besoin de paysage, vous pouvez en ajouter un autre avec l’orientation.
{
"extent" : "full-screen",
"idiom" : "iphone",
"subtype" : "2436h",
"minimum-system-version" : "11.0",
"orientation" : "portrait",
"scale" : "3x"
}
Pour les développeurs paresseux comme moi qui ont un projet existant et une ancienne version de launchimage (sans variante iPhoneX), voici ma solution pour prendre en charge iPhone X - il s'agit d'un raccourci pour vous.
{ "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" },
Remplacez bien sûr le nom de fichier par les images appropriées. Voila!
Si j'ai bien compris, vous utilisez un story-board comme écran de lancement avec affichage de l'image, n'est-ce pas?
Si tel est le cas, dans votre scénario de lancement, sélectionnez pour afficher comme iPhone X:
Ajoutez ensuite la vue de votre image pour qu'elle remplisse toute la zone de la manière suivante:
et épinglez-la au superview avec des constantes de 0. Il est important de le faire avec l'iPhone X sélectionné, car sinon vous épingleriez probablement dans Top Layout Guide, que vous ne voulez pas, Haut.
Votre constellation devrait ressembler à ceci (épinglé à Superview):
En orientation portrait, la largeur de l'affichage sur l'iPhone X correspond à la largeur des écrans 4.7 "de l'iPhone 6, iPhone 7 et iPhone 8 . L'écran de l'iPhone X est toutefois 145 pt plus grand qu'un écran de 4.7", résultant en environ 20% d'espace vertical supplémentaire pour le contenu.
Votre image est probablement correcte, mais essayez de nettoyer (cmd + K) et de reconstruire le projet.
Si le problème persiste, supprimez cette image de Xcode et rajoutez-la à nouveau en faisant glisser ces images dans Xcode. Et reconstruisez-le. Ça devrait marcher.
Vous pouvez conserver une image plus grande en tant qu'image 3x
dans votre ensemble d'images! Je veux dire que 1125px × 2436px
est 3x
résolution de 375pt × 812pt
.
ainsi, dans votre jeu d’images, remplacez l’ancienne image 3x
par l’image de taille 1125px × 2436px
et votre écran de lancement (storyboard ou xib) ne s’étirera pas, je pense!
J'ai supprimé la vue image de xib et nettoyé les données dérivées et la construction . Encore une fois, j'ai ajouté une vue image simple et ensuite défini l'image après avoir défini les contraintes (début, fin, haut, bas) pour superview. Cela a bien fonctionné.
MODIFIER:
Je voulais souligner qu’il était possible d’ajouter une image de lancement pour iPhone X, mais @Christian Cerri demandait d’ajouter une image NORMAL à la Vue d’image dans LaunchScreen.storyboard spécifiquement pour iPhone X, ce qui est impossible.
Réponse originale:
Il n’est pas possible d’ajouter une image spécifique pour iPhone X au catalogue d’actifs (car il utilise @ 3x), vous devez donc probablement utiliser les images de lancement pour cela, si vous voulez une autre image destinée uniquement à iPhone X..