Voici un exemple de code (Réf. De: Safe Area Layout Guide ):
Si vous créez vos contraintes dans le code, utilisez la propriété safeAreaLayoutGuide de UIView pour obtenir les ancres de disposition appropriées. Recréons l'exemple d'Interface Builder ci-dessus dans le code pour voir à quoi il ressemble:
En supposant que nous ayons la vue verte en tant que propriété dans notre contrôleur de vue:
private let greenView = UIView()
Nous pourrions avoir une fonction pour configurer les vues et les contraintes appelées depuis viewDidLoad:
private func setupView() {
greenView.translatesAutoresizingMaskIntoConstraints = false
greenView.backgroundColor = .green
view.addSubview(greenView)
}
Créez les contraintes de marge de début et de fin comme toujours à l'aide du layoutMarginsGuide de la vue racine:
let margins = view.layoutMarginsGuide
NSLayoutConstraint.activate([
greenView.leadingAnchor.constraint(equalTo: margins.leadingAnchor),
greenView.trailingAnchor.constraint(equalTo: margins.trailingAnchor)
])
Désormais, à moins que vous ne cibliez iOS 11 et versions ultérieures, vous devrez encapsuler les contraintes du guide de mise en page de zone de sécurité avec #available et revenir aux guides de mise en page supérieur et inférieur pour les versions antérieures d'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:
Voici la documentation officielle des développeurs Apple pour le guide de disposition des zones de sécurité
La zone de sécurité est requise pour gérer la conception de l'interface utilisateur pour iPhone-X. Voici les instructions de base pour concevoir une interface utilisateur pour iPhone-X à l'aide de la disposition de la zone de sécurité