淺析IOS中的AutoLayout

iOS 應用,一般是以界面(UI: User Interface)展現給用戶。 沒有界面的應用,對用戶來講,將無所適從,總不至於羅列出一堆說明書吧。 iOS開發,很大一部分工做量都花在界面佈局上,有時候爲了讓一個控件完美的顯示就得調試很多時間。初學者對這個UI佈局的操做,還有些新鮮感,但隨着對iOS的深刻理解,越是有經驗的iOS開發者,對UI佈局所花費的時間,無不深惡痛絕,在UI上無休止的改動,就是無休止的浪費時間。html

咱們在通常在使用storyBoard佈局的時候使用autolayout,autolayout(以及iOS8中新增的sizeclass)是爲了解決這些UI可視單元或者元素是怎樣佈局、排列的問題。 iOS6 以前的 layout: UI上元素(也能夠理解爲控件),以視圖的左上角爲參考座標(0,0)進行佈局。當屏幕大小發生變化時,你得手工編寫大量的代碼來作屏幕的適配,iOS6 推出auto layout功能,大大簡化了UI設配的工做量。 當手機屏幕的frame 發生變化時,好比橫屏豎屏,UI上控件(好比:button,imageView啦)的位置和大小會自動適配新的frame,無需人工調整,這就是 autolayout的強大之處。ios

Autolayout最基本的工具是約束(constraints),一個constraint描述了兩個視圖間的幾何關係。好比,有這樣一個約束:"label A左邊緣和imageView B右邊緣有10點的空白空間」。給UI元素設置constraints的時候,有的變橙色了,說明當前所作的約束還不可以肯定這個UI元素的位置,須要繼續添加約束,直到如今它的constraints都是藍色的,紅色的很明顯就是添加的constraints是錯誤的了。app

Xcode中的規則是:Xcode只爲那些你沒有設置任何約束的對象建立自動約束。一旦你增長一個約束,你即是告訴Xcode你接管了這個視圖。Xcode將再也不增長任何自動約束,並但願你爲這個視圖增長鬚要的約束。iphone

 

一。autoLayout的用途:spa

    主要用於屏幕適配,尤爲是出現了iphone6,plus以後。.net

二.怎麼簡單的用autoLayout呢?調試

 

點擊左一,能夠看到:

點擊左二:

相關文章
相關標籤/搜索