簡介
Auto Layout 是蘋果在 Xcode 5 (IOS 6) 中新引入的規劃方式,旨在處理 3.5 寸和 4 寸屏幕的適配問題。屏幕適配任務在 iPhone 6 及 plus 發布當前變得愈加重要,而且以往的“笨方法”的任務量大幅添加,所以很多人開端學習運用 Auto Layout 技術。
初體驗
0. 開發環境
本系列文章的開發環境為:
OS X 10.10.3
Xcode Version 6.3.1 (6D1002)
1. 新建使用
新建一個 Single View Application,命名為 AutoLayout,如下:
點擊選中 Main.storyboard,右側內容如下:
兩個按鈕將會在將來的開發中發生宏大的作用,他們將擁有本系列文章的全局稱號:按鈕1,按鈕2。請先記下他們的地位。
2. 直接上手,開端運用
這也是我對學習新的軟件編程技術的根本學習辦法:有一個詳細客觀驅動的目的,例如做一個真正要給客戶用的軟件,而不是“為了學習新技術進步自己”這類偽目的。
讓我們直接上手:繪制一個間隔左左邊都有一定間隔、固定高度、垂直居中的按鈕,叫“Swift on IOS”。
第一步,從右側拖過去一個按鈕,置於頁面最兩頭。會有參考線呈現,這一步很容易:
選中這個 button,將按鈕背風光和前風光停止如下設置:
將按鈕左側邊界往左拖動直到自動吸附,留下一定的間隔。右側停止異樣操作:
選中這個 button,修正文字為 Swift on IOS:
選中這個 button,點擊 按鈕2 ,選擇這一項:
這時分 button 四周會呈現一些藍色的線條,這些就是 Auto Layout 的約束項。
3. 半途而廢,檢查效果
3.5寸:
4寸:
4.7寸:
5.5寸:
4. 剖析
選中這個 button,在右側檢查自動生成的約束項:
只要三項,這三項的意思辨別是:和父視圖縱向居中對齊、右側和父視圖對齊、左側和父視圖對齊。
我們很容易就能了解這樣可以定位一個按鈕,但是總覺得少了點什麼。實踐上這三個自動生成的約束項並不能描繪一個 button 的地位,由於少了一個關鍵的屬性:button 的高度。當前我們會詳細地討論。
5. 中心思想
實質剖析
Auto Layout 的實質是依托 某幾項約束條件 來到達對某一個元素的定位。我們可以在某個中央只運用一個約束,以到達一個小目的,例如避免內容遮蓋、避免邊界溢出等。但我的最佳理論證明,假如把頁面上每一個元素的地位都用 Auto Layout 停止 “嚴厲約束” 的話,那麼 Auto Layout 可以幫我們省去十分多的計算 frame 的代碼。
“嚴厲約束” 是什麼?
復雜來說,嚴厲約束就是對某一個元素的相對定位,讓它在任一屏幕尺寸下都有著獨一的地位。這裡的相對定位不是定死的地位,而是對一個元素 完善的約束條件。
讓我們看圖說話:
我們要在一個直角坐標系裡描繪一個矩形。
那麼只需求指定這個矩形的地位和大小。
那麼只需給出上圖中的四個值即可:到右邊界的間隔,到上邊界的間隔,寬度,高度。
這四個約束是最復雜的狀況。在對一個元素停止嚴厲約束時,請直接在腦中構建這個元素,並且加上幾條約束條件,假如他無法縮放和動彈,那麼嚴厲約束就是成功的!
必需牢記,運用 Auto Layout 時最重要的是:對頁面上每一個元素都停止嚴厲約束,不嚴厲的約束是萬惡之源。
6.完成三等分
三等分設計思緒
許多人剛開端接觸 Auto Layout,能夠會以為它只能完成下面的1、2功用,其實前面3、4兩個功用才是弱小、特別的中央。接上去我們將嘗試設計橫向三等分:
第一個元素間隔右邊一定間隔。
最後一個元素間隔左邊一定間隔。
三者高度恆定,寬度相等。(此處我們設置為高度恆定(height 屬性),假如你需求的是固定長寬比,則需求設定 aspect Ratio 屬性)
1和2、2和3的橫向間距固定。
干貨,完成進程的動圖:
運轉後果
4 寸:
4.7 寸:
縱向三等分完成方式相似,大家可以自己嘗試一下哦~
【iOS使用開發中運用Auto Layout來適配不同屏幕尺寸】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!