web-dev-qa-db-fra.com

La nouvelle barre d'état de iOS 7 laisse une plage de 20 pixels dans les applications compilées dans Xcode 5

cette semaine est sorti iOS 7 Beta, et chaque fois qu'une mise à jour sort, ceux-ci doivent toujours mettre à jour les applications pour des raisons de compatibilité, corrige quelques bugs.

Eh bien, j'ai installé iOS 7 sur mon iPhone et le principe des applications a parfaitement fonctionné, puis j'ai installé Xcode 5 (préversion) et compilé mes projets, j'ai réalisé que la nouvelle statusBar est maintenant totalement calme, votre contrôleur de vue apparaîtra comme son arrière-plan.

C'est là que le problème se pose, une bande blanche de 20 pixels en bas de l'écran, grâce au contrôleur de vue, a gagné l'espace qui était autrefois la barre d'état.

Si je résous ce problème dans mes story-boards, ça va, mais le problème dans iOS 6 à cause de la barre d'état 20px est toujours là et l'écran sera coupé.

Je pensais que la solution simple était de vérifier la version d'iOS au démarrage et de créer un storyboard en fonction de chacun. Dans mon projet, j'ai 3 storyboards, iPhone 3.5 ',' iPhone 4 'et' iPad '. Il faudra bientôt créer 3 storyboards de plus donc parce que ces 20 px.

Ce serait la meilleure solution? J'ai une autre alternative?

Désolé pour le long texte. Toute aide est la bienvenue!

28
jucajl

C'est en fait un correctif pour un ancien bug. Les versions antérieures de Xcode ne géraient pas la barre d'état correctement, donc les gens définissaient le paramètre Y de la fenêtre à zéro. La valeur correcte serait 20, l'épaisseur verticale de la barre d'état.

Je me souviens vaguement qu'il existe également un paramètre dans Interface Builder qui vous permettrait de spécifier que la barre d'état devait être présente, ce qui ajouterait 20 au paramètre Y. Cela n'a pas fonctionné correctement non plus.

Maintenant que le bug a été corrigé, toutes les anciennes fenêtres seront 20 pixels plus hautes qu'elles ne devraient l'être (essentiellement sous la barre d'état).

Le consensus sur les forums de développement Apple Apple est que Apple ajoutera un moyen de spécifier le comportement iOS6 vs iOS7 dans Interface Builder pour résoudre ce problème.

31
Cliff Harris