web-dev-qa-db-fra.com

Quelle est la "zone de sécurité" pour iPhone X (en pixels) qui prend en compte l'encoche supérieure et la barre inférieure?

J'ai lu le Human Interface Guidelines for pour iPhone X et il n'est pas indiqué explicitement la "zone de sécurité" (zone réservée à la fois à l'encoche supérieure et à la barre inférieure de l'iPhone X). J'aimerais connaître les dimensions en pixels de cette région, y compris les dimensions supprimées du haut et du bas.

24
OnlyCodeMatters

En portrait

  • Top: 44 pt
  • En bas: 34 pt
  • Gauche/Droite: 0pt

En paysage

  • Top: 0pt
  • En bas: 21 pt
  • Gauche/Droite: 44 pt

enter image description here

enter image description here

30
MoOx

En imprimant les encarts de la zone sécurisée de la fenêtre active avec le code suivant, vous pouvez obtenir les dimensions ponctuelles de la zone sécurisée supérieure et inférieure.

if #available(iOS 11.0, *) {
    UIApplication.shared.keyWindow?.safeAreaInsets
    // ...
}

En portrait, la zone supérieure est 44 points longue et la zone inférieure est 4 points de longueur.

Étant donné que la résolution de l'iPhone X est @ 3x, la zone supérieure est 132 pixels longue et la zone inférieure est 102 pixels en longueur.

14
Tamás Sengel

Xcode 9 a introduit des guides de disposition des zones sûres dans le constructeur d'interface. Vous pouvez les activer en accédant à l'inspecteur de fichiers de votre story-board et en cochant la case "Utiliser les guides de présentation de la zone sécurisée"

À partir de là, chaque fois que vous ajoutez des contraintes à votre vue racine, vous avez la possibilité de la limiter à la zone de sécurité. Sur cette photo , la vue en orange est limitée aux bords de la zone de sécurité, tandis que la vue en bleu est limitée aux bords de la vue supérieure.

  • Cadre de la vue orange: (0.0, 44.0, 375.0, 734.0)
  • Cadre de la vue bleue: (0.0, 0.0, 375.0, 812.0)

À partir de là, nous pouvons calculer que 44 points ont été utilisés pour la zone de sécurité supérieure et 34 points pour la zone de bas.

7
Adam Haafiz

Vous pouvez l'obtenir à partir de la propriété safeAreaInsets d'une vue dans un UIViewController.

0
Enrico Susatyo