web-dev-qa-db-fra.com

Quelle est la hauteur de la barre de navigation dans iOS 7?

Je viens de créer une application iOS 7 simple à l'aide du modèle Détails par défaut.

Dans la méthode MasterViewController.m, viewDidAppear, je me suis connecté pour

self.navigationController.navigationBar.frame.size.height
self.navigationController.navigationBar.frame.Origin.y

et a reçu 44 et 20 en conséquence. Cela semble étrange, car d'après ce que j'ai lu, la barre de navigation dans iOS 7 devrait avoir une hauteur de 64 points et commencer à 0 point, de sorte qu'elle se trouve sous la barre d'état. Ce que j'ai lu

1) Guide de la transition de l'interface utilisateur iOS 7

Parce que la barre d'état est transparente, la vue derrière se voit à travers

2) tilisation de l'image d'arrière-plan dans la barre de navigation

Si votre application utilise une image personnalisée comme arrière-plan de la barre, vous devez fournir une image "plus grande" pour qu'elle s'étende derrière la barre d'état. La hauteur de la barre de navigation passe de 44 points (88 pixels) à 64 points (128 pixels).

69
onmyway133

J'ai eu cette réponse dans le livre Programming iOS 7, section Bar Position et Bar Metrics

Si une barre de navigation ou une barre d’outils - ou une barre de recherche (abordée plus haut dans ce chapitre) - doit occuper le haut de l’écran, la convention iOS 7 stipule que sa hauteur doit être augmentée pour recouvrir la barre d’état transparente. Pour rendre cela possible, iOS 7 introduit la notion de position de barre.

IBarPositionTopAttached

Spécifie que la barre se trouve en haut de l'écran, ainsi que la vue qui la contient. Les barres avec cette position dessinent leur arrière-plan étendu vers le haut, ce qui permet d'afficher leur contenu à travers la barre d'état. Disponible dans iOS 7.0 et versions ultérieures.

8
onmyway133

Il y a une différence entre la barre de navigation et la barre d'état. La partie déroutante est qu’elle ressemble à une caractéristique solide en haut de l’écran, mais les zones peuvent en réalité être séparées en deux vues distinctes; une barre d'état et une barre de navigation. La barre d'état s'étend de y = 0 à y = 20 points et la barre de navigation de y = 20 à y = 64 points. La barre de navigation (où se trouvent le titre de la page et les boutons de navigation) a une hauteur de 44 points, mais la barre d'état et la barre de navigation ont ensemble une hauteur totale de 64 points.

Voici une excellente ressource qui répond à cette question ainsi qu’à un certain nombre d’autres idiosyncrasies de dimensionnement dans iOS7: http://ivomynttinen.com/blog/the-ios-7-design-cheat-sheet/

90
poff