問題背景
App 在 iPhone 5s 上顯示正常,但在 4s 上內容超出屏幕邊界,部分控件不可見。
核心解決方案
使用 Auto Layout(自動佈局) 配合 Size Classes(尺寸類別),實現界面對不同設備尺寸的自適應。
關鍵概念
- Auto Layout:基於約束的佈局系統,通過定義控件之間的相對關係(間距、對齊、寬高比等)自動計算幀。
- Size Classes:將設備歸類為 Regular(常規)和 Compact(緊湊)兩種寬高類別,針對不同組合(如 wCompact hRegular 代表豎屏手機)定製佈局。
學習資源推薦
- 初探 iOS8 中的 Size Class —— 入門優秀博文。
- iOS 8 AutoLayout與Size Class自悟 —— 進階實戰技巧。
- Xcode6中自動佈局autolayout和sizeclass的使用 —— 圖文並茂教程。
- 視頻:Autolayout與 SizeClass 簡介 —— 官方 WWDC 視頻。
實踐建議
- 優先使用 Storyboard / XIB 可視化添加約束。
- 善用 Stack View 簡化線性佈局。
- 針對 iPad (wRegular hRegular) 和 iPhone (wCompact hRegular) 設置不同字體大小、間距、甚至顯示/隱藏控件。
- 真機測試覆蓋 4.7、5.5、5.8、6.1、6.7 吋主流尺寸。
總結
Auto Layout + Size Classes 是 iOS 適配多尺寸的標準方案,雖學習曲線較陡,但掌握後可一套界面適配所有設備,避免硬編碼幀座標。