Voici un exemple de code (Ref de : Guide d'aménagement des zones de sécurité ) :
Si vous créez vos contraintes dans le code, utilisez la propriété safeAreaLayoutGuide de UIView pour obtenir les ancres de disposition pertinentes. Recréons l'exemple d'Interface Builder ci-dessus dans le code pour voir à quoi cela ressemble :
En supposant que nous avons la vue verte comme une 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ée par viewDidLoad :
private func setupView() {
greenView.translatesAutoresizingMaskIntoConstraints = false
greenView.backgroundColor = .green
view.addSubview(greenView)
}
Créez les contraintes de marge avant et arrière comme toujours en utilisant le guide layoutMargins de la vue Root :
let margins = view.layoutMarginsGuide
NSLayoutConstraint.activate([
greenView.leadingAnchor.constraint(equalTo: margins.leadingAnchor),
greenView.trailingAnchor.constraint(equalTo: margins.trailingAnchor)
])
Désormais, à moins que vous ne visiez iOS 11 ou une version ultérieure, vous devrez entourer les contraintes du guide de mise en page de la zone de sécurité de #disponible 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 d'Apple pour Guide d'aménagement des zones de sécurité
Safe Area doit s'occuper de la conception de l'interface utilisateur pour l'iPhone-X. Voici les lignes directrices de base pour Comment concevoir une interface utilisateur pour l'iPhone-X en utilisant le Safe Area Layout
1 votes
Aucune propriété bool documentée à ce sujet selon : developer.apple.com/documentation/uikit/uiview/
0 votes
Et si
view.safeAreaInsets
? Avez-vous essayé ?0 votes
@KarthikeyanBose Oui, je l'ai fait, mais sans succès malheureusement.
0 votes
Fonctionne pour moi. A quoi ressemble le code