J'aimerais connaître la hauteur exacte de la barre supérieure de l'iPhone X. Pourriez-vous s'il vous plaît mentionner la barre d'état et la hauteur de la barre de navigation de l'iPhone X. S'il vous plaît aidez-moi .
Toutefois, l'affichage sur l'iPhone X est plus grand qu'un écran de 4,7 "(145) , ce qui donne environ 20% d'espace vertical supplémentaire pour le contenu.
pour plus d'informations, vous obtenez HIG pour iphone X de Apple documents et une description détaillée dans here1 et here2
hauteur de la barre d'état
précédemment 20 pt, maintenant 44 pt
En raison des capteurs situés en haut de l'écran, la nouvelle barre d'état est divisée en 2 parties. Si votre interface utilisateur fait quelque chose de spécial avec cet espace (auparavant 20 pt de haut, maintenant 44 pt), car il sera plus grand sur l'iPhone X. Assurez-vous qu'il peut être modifié de façon dynamique en hauteur. Un avantage important est que la hauteur ne sera pas modifiée si un utilisateur passe un appel téléphonique ou utilise une application de navigation, ce qui était le cas auparavant sur d’autres iPhones.
portrait
Hauteur de la barre de navigation comme d'habitude 88 et durée de titre longue 140
Paysage
Vous pouvez obtenir par programme la hauteur de la barre de navigation en utilisant safeAreaInsets
sur view
dans le contrôleur de vue contenu:
let navBarHeight = view.safeAreaInsets.top
Cela déterminera s'il s'agit d'une grande barre de navigation de titre ou non, et si une barre de recherche y est associée ou non.
Voir la safeAreaInsets
documentation pour plus d’informations.
Vous pouvez simplement l'obtenir de la manière suivante (Swift 3):
let barHeight = navigationController?.navigationBar.frame.maxY
Pour obtenir la valeur correcte, assurez-vous de l'appeler après avoir défini prefersLargeTitles
navigationController?.navigationBar.prefersLargeTitles = false
Vous pouvez utiliser la propriété .frame de la barre de navigation pour déterminer la hauteur totale de la zone de la barre supérieure:
ObjC:
CGRect navbarFrame = self.navigationController.navigationBar.frame;
float topWidth = navbarFrame.size.width;
float topHeight = navbarFrame.size.height + navbarFrame.Origin.y;
Je suppose que c'est un peu une triche, mais l'ajout de la hauteur de la barre de navigation avec son y Origine semble donner la hauteur totale correcte quel que soit l'appareil.
Il n'y a pas de spécification dans Apple Docs
Selon Geoff Hackworth ses 88
Types de titre de navigation:
Augmentation de la barre de navigation dans iOS 11
navigationController?.navigationBar.prefersLargeTitles = true