web-dev-qa-db-fra.com

l'application iOS9 a des barres noires en haut et en bas

Mon application n'utilise pas la mise en page automatique, elle a été conçue à l'origine pour un iPhone 4/4s et l'interface utilisateur n'a pratiquement pas été modifiée depuis. La mise en page est assez minime, il n’a donc pas été jugé prioritaire de le changer automatiquement.

Construisant précédemment pour iOS8, mon application évoluerait correctement sur iPhone 5 et plus récent, en remplissant l'écran. La vue elle-même remplirait tout l'écran, tandis que les icônes seraient proportionnelles (de manière à ne pas être déformées). Cependant, il semble maintenant que l'utilisation de la version bêta d'iOS9 entraîne l'application de barres noires en haut et en bas, qui sont essentiellement affichées sous la forme d'une application à l'échelle de l'iPhone 4, ce qui donne des barres noires en haut et en bas. 

En gros, je veux simplement l'adapter à tout l'écran, comme dans iOS8. Quelqu'un peut-il éclairer ce qui a changé la cause de ces barres noires?

Je devrais ajouter que si le logiciel utilise xcode 7 (ios9 xcode) et déploie un périphérique avec iOs8, il fonctionne correctement, le problème est le déploiement sur des périphériques iOS9.

L'application ressemble comme ceci sur iOS9 à présent, la zone rouge correspond à l'espace utilisable des applications, alors qu'elle était auparavant de la taille complète (notez les barres noires).

20
xceph

@Fantina @Goles J'ai pu temporairement résoudre ce problème en créant et en ajoutant un fichier [email protected] avec une résolution de 640x1136. J'ai ensuite mis à jour la section "Icônes d'application et images de lancement" pour ressembler à ceci:

 No Image Source or Launch Screen File

Je ne pense pas que ce soit une solution à long terme car, pour être compatible avec iOS9 et les applications à écran partagé, Apple nécessite requiert des fichiers de scénarimage ou xib. Cela complique la tâche des développeurs qui s’appuient uniquement sur la génération/présentation de vues par programme. URGH.

15
Jeremy C.

J'ai eu exactement le même problème, et c'est bizarre, j'ai résolu l'erreur et je ne sais pas vraiment pourquoi ma solution fait l'affaire.

Ajoutez un Launch Screen File à votre projet (j'en ai copié un d'un autre projet plus récent que j'ai), et c'est tout, l'application utilise à nouveau tout l'écran.

Pour ajouter un Launch Screen File, créez d'abord un fichier xib, utilisez un UIView et remplissez-le avec ce que vous voulez.

 enter image description here

Ensuite, vous devez sélectionner le projet dans la partie gauche de l'écran, sélectionner la cible de l'application (et non celle du projet). Dans l'onglet Général, recherchez App Icons and Launch Images et mettez le nom de la xib que vous venez de créer sur Launch Screen File.

 enter image description here

Le problème, c'est que cela active le Size classes dans l'interface de l'application. Vous devez donc consulter l'interface de votre application, car la mise à l'échelle ne fonctionne plus.

PS: J'utilise Xcode 7.0 GM

9
Fantini

J'ai eu un problème similaire et je l'ai résolu en configurant Main.storyboard en tant que fichier d'écran de lancement dans l'écran de configuration de l'application. Tous les écrans s’adaptent à l’ensemble de l’écran.

6
Chema García

Vous pouvez ajouter un storyboard LaunchScreen en choisissant: Fichier/Nouveau/Fichier ..., puis dans le groupe iOS, sélectionnez Interface utilisateur/Écran de lancement.

Puis sélectionnez-le comme écran de lancement de votre application, comme expliqué dans la réponse de Fantini .C'est avec Xcode 7.0

1
Gael Jaffrain

Je me suis heurté à cela après la mise à niveau vers xcode 9. Il est intéressant de noter que l'application avait l'air d'aller bien sur les simulateurs, mais qu'elle affichait une barre noire en bas lorsqu'elle fonctionnait sur un appareil connecté. Dans le menu, choisir un produit, puis maintenir Option -> nettoyer le dossier de génération résolue le problème pour moi.

0
apricity