Voir des barres noires en haut et en bas du simulateur iPhone X

132

Exécution de mon application dans le simulateur iPhone X (GM Seed) Je remarque deux effets étranges:

  • l'application n'utilise pas l'espace plein écran (les zones supérieure et inférieure sont noires)
  • une étrange barre blanche sous la barre de titre

entrez la description de l'image ici

Quelqu'un sait-il ce qui se passe ici et comment résoudre ce problème? Je ne trouve aucun nouveau paramètre dans Interface Builder.

Darko
la source
1
Utilisez-vous un fichier d'écran de lancement ou lancez-vous des images? Utilisez-vous la mise en page automatique?
rmaddy le
1
Lancer les images et la mise en page automatique
Darko
3
Pourquoi utilisez-vous les anciennes images de lancement au lieu du fichier d'écran de lancement beaucoup plus simple? Quoi qu'il en soit, avez-vous ajouté la nouvelle image de lancement nécessaire pour la nouvelle taille d'écran?
rmaddy
Je ne trouve pas d'image de lancement pour la taille de l'iPhone X. Mais l'utilisation d'un écran de lancement a résolu les deux problèmes. Veuillez modifier votre réponse et je la marquerai comme réponse. Merci!
Darko le
5
Vous NE DEVEZ PAS UTILISER d'images de lancement. UTILISATION à la Launch Screen.storyboardplace
onmyway133

Réponses:

186

Lorsque vous utilisez des images de lancement (au lieu du fichier d'écran de lancement beaucoup plus simple), vous devez fournir l'image de lancement de taille appropriée pour chaque taille de périphérique que vous souhaitez prendre en charge. Une fois que vous avez ajouté l'image de lancement supplémentaire, votre application devrait tirer parti de la nouvelle taille d'écran.

Le nouvel iPhone X nécessite une image de lancement dimensionnée à 1125px × 2436px qui est une image 3x pour 375pt × 812pt.

Bien sûr, si vous passez à l'utilisation d'un fichier d'écran de lancement au lieu d'images de lancement individuelles, votre application s'adaptera automatiquement à toutes les tailles d'appareils sans aucun travail supplémentaire.

rmaddy
la source
2
pouvez-vous entrer plus en détail sur la façon d'intégrer la nouvelle image iphoneX dans un écran de lancement? Tous les ensembles d'images que j'ajoute à Xcode 9 n'ont pas de slots iphoneX, seulement les ensembles d'images de lancement.
Christian Cerri
1
@ChristianCerri Les ensembles d'images ne sont pas liés aux appareils. Ils vous offrent simplement des options 1x, 2x et 3x. Je faisais référence aux images de lancement. Ce sont les seules images spécifiques à l'appareil. Si vous avez une question sur l'ajout d'images de tailles différentes à un écran de lancement, veuillez poster votre propre question spécifique à ce problème.
rmaddy
19
Comment diable lancer des images liées à la barre noire en haut et en bas du simulateur iPhone X ??!
TomSawyer
1
@TomSawyer Si votre application n'utilise pas de storyboard d'écran de lancement, les images de lancement déterminent les tailles d'écran prises en charge par votre application.
rmaddy
1
Consultez la réponse de @sabiland si vous voyez toujours des barres noires et que vous utilisez un écran de lancement. Ce serait formidable si cette réponse pouvait être complétée par une information sur la façon de concevoir correctement l'écran de lancement pour l'iPhone X.
Crashalot
36

J'ai compris ce problème dans l'iPhone X. Taille de l'image de lancement (1125 * 2436px) Veuillez suivre les étapes ci-dessous. 1.i) Choisissez le nom de votre projet dans Xcode. ii) Sélectionnez la cible de votre projet iii) Puis sélectionnez Lancer la source d'images entrez la description de l'image ici

  1. Vous pouvez obtenir la fenêtre contextuelle Migrate i) Choisissez les actifs ii) Sélectionnez Migrer

entrez la description de l'image ici

  1. Ensuite, sélectionnez vos Assets.xcassets dans votre projet entrez la description de l'image ici

  2. Ensuite, sélectionnez Lancer l'image dans les actifs i) Puis sélectionnez l'inspecteur d'attributsentrez la description de l'image ici

  3. vérifiez enfin la source de votre image de lancement. vous pouvez voir définir l'image de lancement.

entrez la description de l'image ici

Karthickkck
la source
J'ai voté pour les photos. Mais vous devez effacer le texte "LaunchScreen" du champ de texte Fichier de l'écran de lancement dans votre dernière image.
NadtheVlad
Merci @NadtheVlad. Veuillez effacer le texte «LaunchScreen» du fichier de l'écran de lancement et supprimer le fichier LaunchScreen.Storyboard de Xcode.
Karthickkck
Merci! C'était la case à cocher paysage de Launch Image qui posait problème car mon application n'est que portrait.
green0range
Merci, j'ai eu le même problème et l'a résolu en ajoutant des images de lancement (une application SDL2)
Viktor Sehr
14

J'ai trouvé comment réparer (même si je ne comprends toujours pas pourquoi cela s'est produit uniquement sur l'iPhone X), le storyboard LaunchScreen sur l'iPhone X avec des barres noires en haut et en bas.

J'ai un storyboard LaunchScreen avec un UIImageView.

Le haut et le bas de UIImageView doivent être épinglés en haut et en bas de SuperView . PAS à SafeArea .

sabiland
la source
Cela a résolu mon problème avec LauchScreen avec Autolayout. Mais au lieu d'épingler aux bordures, j'ai centré horizontalement et verticalement et égalise la largeur / hauteur à SuperView.
Yuri Natividade du
Cela ne fonctionnait qu'après avoir également épinglé des vues dans d'autres storyboards en haut / en bas de la vue, par opposition aux guides de mise en page. Assurez-vous de vérifier les storyboards en mode iPhone X.
Crashalot
pourquoi je ne vois pas superview dans mon storyboard quand je vais donner cette contrainte
rd_
10

Je l'ai corrigé en insérant simplement du texte aléatoire dans le Lanch Screen Filechamp de texte . Je n'ai même pas de fichier d'écran de lancement ... XCode est tellement bogué.

mettre à jour

Bien que cela corrige le problème dans le simulateur (toujours très étrange et inattendu) lors du téléchargement d'un binaire sur iTunes Connect, il échouera en raison de ne pas trouver un fichier LanchScreen de nom "random-name"

Arbitur
la source
Droit son travail pour iphone x. mais son ne fonctionne pas pour aucun autre appareil bro.
Govaadiyo
Oui oui! cela le corrige dans xcode. Merci! C'est assez bon pour les tests. Achètera un vrai iphone X pour éviter le problème de xcode à l'avenir pour le tester.
Phyllis Sutherland
5

Je viens de rencontrer cela en essayant de mettre à jour une application sur laquelle je n'avais pas travaillé depuis un moment.

Sur Xcode 9.4, j'ai pu résoudre ce problème en procédant comme suit:

  1. Ajoutez un écran de lancement en allant dans Fichier -> Nouveau -> Fichier ... -> Écran de lancement

entrez la description de l'image ici

  1. Assurez-vous que le storyboard de l'écran de lancement nouvellement ajouté est sélectionné comme fichier d'écran de lancement sous les paramètres du projet.

entrez la description de l'image ici

Myxtic
la source
1

Si vous disposez déjà d'une image de lancement de 1125 px × 2436 px mais que l'application n'utilise toujours pas le plein écran, vérifiez que votre image est au format PNG.

Blago
la source
1

si vous avez supprimé LaunchScreen.storyboard; Choisissez votre projet, sélectionnez la cible de votre projet, Général -> Icônes d'application et images de lancement -> Fichier écran de lancement: Sélectionnez ici Main.storyboard au lieu de LaunchScreen.storyboard

Bedri Keskin
la source
1

J'ai juste eu ce problème ... Lorsque j'ai sélectionné le projet et la bonne cible, j'avais un espace vide pour le `` fichier d'écran de lancement '' sous les icônes de l'application et l'onglet des images de l'écran de lancement. Je l'ai défini sur LaunchScreen par défaut et le problème de redimensionnement auquel j'ai été confronté a été réglé.

Revanth Matha
la source
0

Vous pouvez archiver le fichier d'écran de lancement de la cible du projet n'est pas défini sur vide s'il est vide, cela peut causer des problèmes.entrez la description de l'image ici

Aqib Zareen
la source
sélectionnez Laaunchscreen.storyboard dans la cible générale j'ai résolu le problème.
Aqib Zareen le