De la Zone de sécurité est un guide de présentation de l' (Zone de Sécurité Guide de Présentation).
Le guide de présentation de l'représente la partie de votre point de vue qui n'est pas caché par les bars et d'autres contenus. Dans iOS 11+, Apple est déconseiller le haut et le bas repères de mise en page et de les remplacer par une seule zone de sécurité guide de présentation de l'.
Lorsque la vue est visible à l'écran, ce guide reflète la partie de la vue qui n'est pas couvert par d'autres. La zone de sécurité d'un point de vue reflète la superficie couverte par les barres de navigation barres d'onglets, barres d'outils, et d'autres ancêtres qui masquent la vue du contrôleur de vue. (En tvOS, de la zone de sécurité intègre l'écran de la lunette, tel que défini par l' overscanCompensationInsets
de la propriété de UIScreen.) Il couvre également un espace supplémentaire défini par le point de vue du contrôleur additionalSafeAreaInsets
de la propriété. Si la vue n'est pas actuellement installé en vue de la hiérarchie, ou n'est pas encore visible à l'écran, la mise en page du guide correspond aux bords de la vue.
Pour le point de vue du contrôleur de vue de la racine, de la zone de sécurité dans cette propriété représente la partie entière de la vue du contrôleur de contenu qui est obscurci, et tous les autres encarts que vous avez spécifié. Pour d'autres points de vue dans la vue de la hiérarchie, de la zone de sécurité ne reflète que la partie de la vue est obscurcie. Par exemple, si une vue est entièrement à l'intérieur de la zone de sécurité de son point de vue du contrôleur de vue de la racine, le bord des encarts dans cette propriété sont à 0.
Selon Apple, Xcode 9 - note de Version
Interface Builder utilise UIView.safeAreaLayoutGuide comme un remplacement pour le obsolète en Haut et en Bas repères de mise en page dans UIViewController. Pour utiliser la nouvelle zone de sécurité, sélectionnez la Zone de Sécurité repères de Mise en page dans le Fichier inspecteur pour l'affichage de la télécommande, puis ajouter des contraintes entre votre contenu et la nouvelle zone de sécurité ancres. Cela empêche votre contenu d'être obscurci par les barres supérieure et inférieure, et par l'overscan région sur tvOS. Les contraintes de la zone de sécurité sont convertis en Haut et en Bas lors du déploiement de versions antérieures d'iOS.
Ici est simple référence à une comparaison (pour prendre effet visuel similaire) entre l'existant (Haut & Bas) Guide de Présentation et de la Zone de Sécurité Guide de Présentation de l'.
De La Zone De Sécurité Mise En Page:
Mise en page automatique
Comment travailler avec la Sécurité de la Zone de Mise en page?
Suivez ces étapes pour trouver solution:
- Activer l'option "Zone de Sécurité Mise en page', si ce n'est activé.
- Supprimer toute contrainte " si l'on montre la connexion avec avec Super vue et ré-attacher tous les sécurité de mise en page d'ancrage. OU Double-cliquez sur une contrainte et modifier la connexion de super vue de SafeArea d'ancrage
Voici un exemple de capture instantanée, comment faire pour activer la zone de sécurité de mise en page et de modifier contrainte.
Ici est le résultat de changements ci-dessus
Conception de mise en page avec SafeArea
Lors de la conception pour l'iPhone X, vous devez vous assurer que les mises en page de remplir l'écran et ne sont pas masquées par le dispositif de coins arrondis, capteur de logement, ou de l'indicateur pour accéder à l'écran d'Accueil.
La plupart des applications qui utilisent le standard, fourni par le système des éléments d'INTERFACE utilisateur, comme les barres de navigation, les tableaux et les collections s'adaptent automatiquement à l'appareil du nouveau facteur de forme. Documents de référence, étendre les bords de l'écran et les éléments de l'INTERFACE utilisateur sont correctement encadré et placé.
Pour les applications avec des mises en page personnalisées, en soutenant l'iPhone X devrait également être relativement facile, surtout si votre application utilise la Mise en page Automatique et adhère à la zone de sécurité et de la marge repères de mise en page.
Voici un exemple de code (Réf à partir de: Zone de Sécurité Guide de Présentation):
Si vous créez vos contraintes dans le code de la safeAreaLayoutGuide propriété de UIView pour obtenir pertinents de la mise en page des ancres. Nous allons recréer l'Interface ci-dessus Builder exemple dans le code pour voir à quoi il ressemble:
En supposant que nous avons le vert vue comme une propriété de notre point de vue contrôleur:
private let greenView = UIView()
On pourrait avoir une fonction pour définir les points de vue et contraintes appelé à partir de viewDidLoad:
private func setupView() {
greenView.translatesAutoresizingMaskIntoConstraints = false
greenView.backgroundColor = .green
view.addSubview(greenView)
}
Créer de l'attaque et de fuite de la marge des contraintes comme toujours à l'aide de la layoutMarginsGuide de la vue racine:
let margins = view.layoutMarginsGuide
NSLayoutConstraint.activate([
greenView.leadingAnchor.constraint(equalTo: margins.leadingAnchor),
greenView.trailingAnchor.constraint(equalTo: margins.trailingAnchor)
])
Maintenant, à moins que vous ciblez iOS 11 seulement vous devez envelopper la zone de sécurité guide de présentation de contraintes avec #disponible et de revenir au haut et au bas repères de mise en page pour les précédentes versions iOS:
if #available(iOS 11, *) {
let guide = view.safeAreaLayoutGuide
NSLayoutConstraint.activate([
greenView.topAnchor.constraintEqualToSystemSpacingBelow(guide.topAnchor, multiplier: 1.0),
guide.bottomAnchor.constraintEqualToSystemSpacingBelow(greenView.bottomAnchor, multiplier: 1.0)
])
} else {
let standardSpacing: CGFloat = 8.0
NSLayoutConstraint.activate([
greenView.topAnchor.constraint(equalTo: topLayoutGuide.bottomAnchor, constant: standardSpacing),
bottomLayoutGuide.topAnchor.constraint(equalTo: greenView.bottomAnchor, constant: standardSpacing)
])
}
Résultat:
Suivant UIView
extension, il est facile pour vous de travailler avec SafeAreaLayout par programmation.
extension UIView {
// Top Anchor
var safeAreaTopAnchor: NSLayoutYAxisAnchor {
if #available(iOS 11.0, *) {
return self.safeAreaLayoutGuide.topAnchor
} else {
return self.topAnchor
}
}
// Bottom Anchor
var safeAreaBottomAnchor: NSLayoutYAxisAnchor {
if #available(iOS 11.0, *) {
return self.safeAreaLayoutGuide.bottomAnchor
} else {
return self.bottomAnchor
}
}
// Left Anchor
var safeAreaLeftAnchor: NSLayoutXAxisAnchor {
if #available(iOS 11.0, *) {
return self.safeAreaLayoutGuide.leftAnchor
} else {
return self.leftAnchor
}
}
// Right Anchor
var safeAreaRightAnchor: NSLayoutXAxisAnchor {
if #available(iOS 11.0, *) {
return self.safeAreaLayoutGuide.rightAnchor
} else {
return self.rightAnchor
}
}
}
Voici un exemple de code en Objective-C:
Voici des Développeurs d'Apple, la Documentation Officielle pour la Zone de Sécurité Guide de Présentation de l'
De la Zone de sécurité est nécessaire pour gérer la conception de l'interface utilisateur pour iPhone-X. Voici des directives de base pour Comment la conception de l'interface utilisateur pour iPhone-X à l'aide de la Zone de Sécurité de Mise en page