Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> iOS

พัฒนา/ย้ายแอปสำหรับความละเอียดหน้าจอ iPhone 5

iPhone 5 (2012) มีความละเอียด 640×1136 (Aspect Ratio 16:9) ต่างจาก iPhone 4/4S (3:2) ปัจจุบัน Xcode ใช้ Auto Layout และ Size Classes จัดการทุกขนาดได้อัตโนมัติ

บริบททางประวัติศาสตร์

  • iPhone 4/4S: 640×960 (3:2)
  • iPhone 5/5s/SE(1st): 640×1136 (16:9) - First 4-inch
  • iPhone 6/7/8: 750×1334 (4.7")
  • iPhone 6+/7+/8+: 1242×2208 (5.5")
  • iPhone X/XS/11 Pro: 1125×2436 (5.8")
  • iPhone 12/13/14/15 Pro: 1179×2556 (6.1")

วิธีการปัจจุบัน (Auto Layout + Size Classes)

  1. ใช้ Auto Layout Constraints ไม่ใช่ Frame แบบ Hardcode
  2. ใช้ Stack Views จัด Layout อัตโนมัติ
  3. ใช้ Size Classes (Regular/Compact) ปรับ Layout ตามอุปกรณ์
  4. Test ด้วย View As: ใน Storyboard (iPhone SE, 8, 14 Pro, iPad, etc.)

Launch Screen (สำคัญ)

  • ใช้ Launch Screen.storyboard (ไม่ใช่ Launch Images แบบเก่า)
  • รองรับทุกขนาดอัตโนมัติด้วย Auto Layout
  • หากยังใช้ Launch Images ต้องมี Default-568h@2x.png (1136×640) สำหรับ iPhone 5

Safe Area (iOS 11+)


// ใช้ Safe Area Layout Guide แทน Superview Edges
view.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor).isActive = true
view.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor).isActive = true

Device-Specific Adjustments (หากจำเป็น)


let isSmallScreen = UIScreen.main.bounds.height <= 667 // iPhone 8/SE
let hasNotch = UIApplication.shared.windows.first?.safeAreaInsets.top ?? 0 > 20

if isSmallScreen {
    // ปรับ Font Size, Spacing ให้เล็กลง
    titleLabel.font = .systemFont(ofSize: 24)
} else {
    titleLabel.font = .systemFont(ofSize: 32)
}

สรุป

ไม่ต้อง "Migrate" แบบเดิมๆ แล้ว ใช้ Auto Layout + Size Classes + Safe Area แอปจะทำงานได้ทุกขนาด iPhone/iPad อัตโนมัติ