概述
Layout,即適配,view hierarchy layout方案,當UI變化時,view hierarchy layout需動態更新以適應UI變化,UI變化主要有兩類:
外部變化
外部變化指父窗口尺寸或形狀發生變化,主要有以下來源:
- 調整窗口大小(os x)
- ipad上進入或離開分割窗口(ios)
- 設備旋轉(ios)
- 來電和錄音條顯示或消失(ios)
- 支持不同尺寸class
- 支持不同屏幕尺寸
內部變化
內部變化指窗口或控件尺寸發生變化,主要有以下來源:
- 顯示內容變化(顯示文本或圖像)
- 支持國際化(不同語言,不同地區日期和數字顯示格式,不同語言閱讀方向)
- 支持動態類型(不同字體大小)(ios)
Layout
三種主要layout方式:
- 編程適配
- autoresizing
- auto layout
編程適配
設置view hierarchy中每個view frame(參考座標系爲父窗口座標系)
autoresizing
父窗口frame變化,子窗口frame對應變化,更多作爲編程適配輔助手段
- 優點:簡單
- 缺點:功能極其有限,對於複雜UI,需配合編程適配使用,只能適配外部變化,不能適配內部變化
auto layout
不考慮view frame,而考慮view之間關係
- 優點:能適配外部變化,也能適配內部變化,能適配複雜UI
- 缺點:相對複雜,比編程適配簡單,比autoresizing複雜