135 votes

Des barres noires apparaissent en haut et en bas du simulateur de l'iPhone X.

En exécutant mon application dans le simulateur iPhone X (GM Seed), je constate deux effets étranges :

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

enter image description here

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

1 votes

Utilisez-vous un fichier d'écran de lancement ou des images de lancement ? Utilisez-vous la mise en page automatique ?

1 votes

Lancement des images et mise en page automatique

3 votes

Pourquoi utilisez-vous les anciennes images de lancement au lieu du fichier d'écran de lancement, beaucoup plus facile à utiliser ? En tout cas, avez-vous ajouté la nouvelle image de lancement nécessaire pour la nouvelle taille d'écran ?

187voto

rmaddy Points 79279

Lorsque vous utilisez des images de lancement (au lieu du fichier écran de lancement, beaucoup plus facile à utiliser), vous devez fournir l'image de lancement de taille appropriée pour chaque taille de dispositif 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 d'une taille de 1125px × 2436px, soit une image 3x pour 375pt × 812pt.

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

2 votes

Pouvez-vous expliquer plus en détail comment intégrer la nouvelle image iphoneX dans un écran de lancement ? Tous les jeux d'images que j'ajoute à Xcode 9 n'ont pas d'emplacements pour iphoneX, seulement des jeux d'images de lancement.

1 votes

@ChristianCerri Les jeux 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 aux appareils. 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.

0 votes

J'ai juste fait ce que vous avez demandé : stackoverflow.com/questions/46191522/

37voto

Karthickkck Points 980

J'ai trouvé 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 Launch images source enter image description here

  1. Vous pouvez obtenir la popup Migrate i) Choisissez les actifs ii)Sélectionnez Migrate

enter image description here

  1. Après cela, sélectionnez vos Assets.xcassets dans votre projet. enter image description here

  2. Sélectionnez ensuite Lancer l'image dans les actifs i)Ensuite, sélectionnez l'inspecteur d'attributs enter image description here

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

enter image description here

0 votes

Upvoted pour les photos. Mais vous devriez effacer le texte "LaunchScreen" du champ de texte "Launch Screen File" dans votre dernière image.

0 votes

Merci @NadtheVlad. Veuillez effacer le texte "LaunchScreen" du fichier Launch Screen et supprimer le fichier LaunchScreen.Storyboard de Xcode.

0 votes

Merci. C'est la case paysage de l'image de lancement qui posait problème puisque mon application n'est que portrait.

19voto

Lal Krishna Points 5552

L'iPhone X nécessite une image de lancement différente de 1125px x 2436px (375pt x 812pt @3x).

enter image description here

Vérifiez directives sur l'interface humaine pour plus de détails.

14voto

sabiland Points 421

J'ai trouvé comment réparer (bien que je ne comprenne toujours pas pourquoi cela n'arrive que 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.

L'interface de l'UIImageView haut et bas doit être épinglé sur L'outil SuperView haut et bas . PAS à SafeArea .

0 votes

Cela a résolu mon problème avec LauchScreen avec Autolayout. Mais au lieu d'épingler les bords, j'ai centré horizontalement et verticalement et égalisé la largeur/hauteur à SuperView.

0 votes

Cela n'a fonctionné qu'après avoir également épinglé des vues dans d'autres storyboards sur le haut/bas de la vue, par opposition aux guides de mise en page. Veillez à vérifier les storyboards en mode iPhone X.

0 votes

Pourquoi je ne peux pas voir la vue supérieure dans mon storyboard lorsque je vais donner cette contrainte.

11voto

Arbitur Points 2539

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

mise à jour

Bien que cela corrige le problème dans le simulateur (toujours très bizarre et inattendu), lors du téléchargement d'un binaire vers iTunes Connect, il échouera parce qu'il ne trouve pas de fichier LanchScreen de nom "random-name".

0 votes

C'est vrai que ça marche pour l'iphone x, mais ça ne marche pas pour les autres appareils.

0 votes

Oui oui ! cela corrige le problème dans xcode. Merci ! C'est assez bon pour les tests. Je vais acheter un vrai iphone X pour éviter le problème de xcode à l'avenir pour tester.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X