1. 程式人生 > >uikit——Layout——概述

uikit——Layout——概述

概述

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複雜