Ось зразок коду (Посилання з: Посібник із макетування безпечної зони ):
Якщо ви створюєте свої обмеження в коді, використовуйте властивість safeAreaLayoutGuide UIView, щоб отримати відповідні прив'язки макета. Давайте відтворимо наведений вище приклад Interface Builder у коді, щоб побачити, як він виглядає:
Припускаючи, що ми маємо зелений вигляд як властивість нашого контролера перегляду:
private let greenView = UIView()
Ми могли б мати функцію для налаштування подань та обмежень, викликаних з viewDidLoad:
private func setupView() {
greenView.translatesAutoresizingMaskIntoConstraints = false
greenView.backgroundColor = .green
view.addSubview(greenView)
}
Створіть обмеження початкового та кінцевого полів, як завжди, використовуючи layoutMarginsGuide кореневого подання:
let margins = view.layoutMarginsGuide
NSLayoutConstraint.activate([
greenView.leadingAnchor.constraint(equalTo: margins.leadingAnchor),
greenView.trailingAnchor.constraint(equalTo: margins.trailingAnchor)
])
Тепер, якщо ви не націлюєтесь на iOS 11 і пізніших версій, вам потрібно буде обернути обмеження керівництва щодо розміщення безпечної зони на #available і повернутися до верхнього та нижнього напрямних макетів для попередніх версій 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)
])
}
Результат:
Ось офіційна документація розробника Apple для посібника з розміщення безпечної зони
Безпечна зона потрібна для дизайну інтерфейсу користувача для iPhone-X. Ось основне керівництво щодо того, як розробити користувальницький інтерфейс для iPhone-X за допомогою макета Safe Area