web-dev-qa-db-fra.com

Quelle est la hauteur maximale de l'iPhone X?

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 .

enter image description here

53
IKKA

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

enter image description here

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.

enter image description here

portrait

Hauteur de la barre de navigation comme d'habitude 88 et durée de titre longue 140

  • Titre standard - 44 pt (88 pt avec barre d'état)
  • Grand titre - 140pt
  • barre inférieure - 34pt

Paysage

  • Titre standard - 32pt
  • barre inférieure - 21pt
82
Anbu.Karthik

La barre de navigation est de 44 pt comme d'habitude (quand il n'y a pas de gros titres) et la barre d'état est passée de 20 pt à 44 pt. Voici ce que vous pouvez taper dans le débogueur pour le vérifier:

enter image description here

25
skensell

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.

11
Paolo

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
10
Andrew Bogaevskyi

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.

9
jkira

Il n'y a pas de spécification dans Apple Docs

Docs Apple

Selon Geoff Hackworth ses 88

Types de titre de navigation:

  • Titre standard
  • Grand titre

Augmentation de la barre de navigation dans iOS 11

navigationController?.navigationBar.prefersLargeTitles = true
4
Harshal Valanda