Di seguito è riportato un codice di esempio (rif. Da: Guida al layout dell'area sicura ):
se si creano i vincoli nel codice, utilizzare la proprietà safeAreaLayoutGuide di UIView per ottenere gli ancoraggi del layout pertinenti. Ricreamo nel codice l'esempio precedente di Interface Builder per vedere come appare:
Supponendo di avere la vista verde come proprietà nel nostro controller di visualizzazione:
private let greenView = UIView()
Potremmo avere una funzione per impostare le visualizzazioni e i vincoli chiamati da viewDidLoad:
private func setupView() {
greenView.translatesAutoresizingMaskIntoConstraints = false
greenView.backgroundColor = .green
view.addSubview(greenView)
}
Crea i vincoli del margine iniziale e finale come sempre utilizzando layoutMarginsGuide della vista radice:
let margins = view.layoutMarginsGuide
NSLayoutConstraint.activate([
greenView.leadingAnchor.constraint(equalTo: margins.leadingAnchor),
greenView.trailingAnchor.constraint(equalTo: margins.trailingAnchor)
])
Ora, a meno che tu non stia prendendo di mira iOS 11 e versioni successive, dovrai racchiudere i vincoli della guida del layout dell'area sicura con #available e tornare alle guide del layout superiore e inferiore per le versioni precedenti di 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)
])
}
Risultato:
Ecco la documentazione ufficiale per sviluppatori Apple per la guida al layout dell'area sicura
L'area sicura è necessaria per gestire il design dell'interfaccia utente per iPhone-X. Ecco le linee guida di base su Come progettare l'interfaccia utente per iPhone-X utilizzando il layout dell'area sicura