นี่คือโค้ดตัวอย่าง (อ้างอิงจาก: Safe Area Layout Guide ):
หากคุณสร้างข้อ จำกัด ของคุณในโค้ดให้ใช้คุณสมบัติ 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 ขึ้นไปคุณจะต้องตัดข้อ จำกัด ของคำแนะนำการจัดวางพื้นที่ปลอดภัยด้วย # พร้อมใช้งานและถอยกลับไปที่คำแนะนำการจัดวางด้านบนและด้านล่างสำหรับ 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 สำหรับคู่มือการจัดวางพื้นที่ปลอดภัย
ต้องใช้ Safe Area เพื่อจัดการกับการออกแบบส่วนต่อประสานผู้ใช้สำหรับ iPhone-X นี่คือแนวทางพื้นฐานสำหรับวิธีออกแบบส่วนติดต่อผู้ใช้สำหรับ iPhone-X โดยใช้ Safe Area Layout