Đây là mã mẫu (Tham khảo từ: Hướng dẫn Bố trí Khu vực An toàn ):
Nếu bạn tạo các ràng buộc của mình trong mã, hãy sử dụng thuộc tính safeAreaLayoutGuide của UIView để nhận các neo bố cục có liên quan. Hãy tạo lại ví dụ về Trình tạo giao diện ở trên bằng mã để xem nó trông như thế nào:
Giả sử chúng ta có chế độ xem màu xanh lá cây như một thuộc tính trong bộ điều khiển chế độ xem của chúng ta:
private let greenView = UIView()
Chúng ta có thể có một hàm để thiết lập các khung nhìn và ràng buộc được gọi từ viewDidLoad:
private func setupView() {
greenView.translatesAutoresizingMaskIntoConstraints = false
greenView.backgroundColor = .green
view.addSubview(greenView)
}
Tạo các ràng buộc lề đầu và cuối như mọi khi bằng cách sử dụng layoutMarginsGuide của chế độ xem gốc:
let margins = view.layoutMarginsGuide
NSLayoutConstraint.activate([
greenView.leadingAnchor.constraint(equalTo: margins.leadingAnchor),
greenView.trailingAnchor.constraint(equalTo: margins.trailingAnchor)
])
Bây giờ, trừ khi bạn đang nhắm mục tiêu iOS 11 trở lên, bạn sẽ cần phải bao bọc các ràng buộc hướng dẫn bố cục khu vực an toàn bằng #available và quay lại hướng dẫn bố cục trên cùng và dưới cùng cho các phiên bản iOS trước đó:
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)
])
}
Kết quả:
Đây là Tài liệu Chính thức dành cho Nhà phát triển của Apple về Hướng dẫn Bố trí Khu vực An toàn
Khu vực An toàn là bắt buộc để xử lý thiết kế giao diện người dùng cho iPhone-X. Đây là hướng dẫn cơ bản về Cách thiết kế giao diện người dùng cho iPhone-X bằng Bố cục Vùng An toàn