繼第一篇storyboard新手教程:
http://www.itdecent.cn/p/2bf8eeff872e
繼續(xù)講解
3.添加約束(important)
選中item1這是一個普通的vc拖一個按鈕button上去
此時button是被選中狀態(tài),哪個控件是被選中狀態(tài)就為哪個控件添加約束
視角轉(zhuǎn)到中間底部偏右wAny hAny右邊
點擊第二個按鈕
其中上面灰色的約束是啥我不太清楚(不常用)最后兩個約束的意思是如果值為0就垂直居中或者水平居中,左邊的選擇框選中后再點擊下面的Add Constraints按鈕
(灰色說明沒有約束被選中)即可添加
此時注意添加約束時如果約束沒有添加完全則會報錯(比如你只添加了距離左邊邊距約束則會報錯,不同的控件“約束添加完成”條件不同)
再來看第三個按鈕的約束(簡單約束核心內(nèi)容)
首選取消Constrain to margins的選中狀態(tài)
Constrain to margins的意思就是蘋果官方默認為你準備的邊距效果 他們認為距離8是不錯的距離
所以如果你選中了Constrain to margins 設置邊距為0后實際上是8(真是毫無意義的設定……)
取消選中后看上面實際上有四個約束
這四個約束分別就是距離上下左右最近的控件的距離 目前這個button的在vc的view上面 view上面也只有這一個button 所以這四個約束代表該button距離他的superview四個邊距的距離 但都沒哪一個約束是準備添加狀態(tài)
此時已準備好添加兩個約束(點一下紅線就更改是否添加狀態(tài))它們分別是上邊距和左邊距
此時往下點擊Add 3 Constraints按鈕添加三個約束
發(fā)現(xiàn)界面上只有黃線而沒有紅線 這說明已滿足約束完全條件(button的條件很隨意 只要左邊距和上邊距即可滿足)三根黃線代表了它的實際樣子需要更新 視角轉(zhuǎn)到左邊
發(fā)現(xiàn)有一個小黃色按鈕點擊它
之后點擊黃色三角
發(fā)現(xiàn)有很多選擇 一般是選擇Update frames更新該控件的frame
該按鈕的意思是為所有控件都執(zhí)行此方法進行修改 目前只有一個button 無需選中
點擊按鈕后 選中界面上的button
我們可以看到該button的長度是屏幕長度 而高度因為沒有約束所以是按照字體大小來自適應的(如果沒有左邊距或右邊距則長度會根據(jù)文字數(shù)量自適應)
接下來看下面的約束
一看就能明白 這是設置該按鈕的固定長度和高度(注意此時設置width是不贊成的 如果設置為320可以編譯通過 但是在iPhone6上因為屏幕尺寸長度不是320則會出問題,如果設置的數(shù)值不是320會報錯),此時設置固定高度為40 選中左邊選擇框 之后點擊下方添加約束按鈕(這里就不配圖了)
可以發(fā)現(xiàn)多了一根黃線 數(shù)值是-10 意思就是該按鈕高度與實際高度相比-10
再看下面的約束
最后一個約束Align沒用過……
看Aspect Ratio約束 意思就是該控件的長寬比
添加該約束 之后視角轉(zhuǎn)到右上角
可以發(fā)現(xiàn)你自己已經(jīng)添加的約束
總共是五個約束 其中是寬高比約束 點擊右邊的edit
第一個constant對于該約束沒有實際意義(它的數(shù)值可以代表邊距的距離數(shù)值)
第二個Priority代表優(yōu)先值 默認都是1000 意思是先滿足哪個約束要求 當你設置多個同類約束時設置好優(yōu)先值就不會報錯 同時會按照優(yōu)先順序滿足你設置的約束條件
第三個multiplier就是該約束很重要的屬性了 可以看到該按鈕長寬是40和320 所以添加寬高比約束時默認是320:40也就是8:1 修改它可以更改寬高比(但是此時更改后會報錯,因為你同時設置了左、右邊距固定了長度 以及固定高度 所以你的寬高此時實際上是固定的,只不過該約束滿足了其它約束條件所以沒有報錯,簡而言之它們目前是同類約束)。
雙擊一個約束后會選中該約束,再按中鍵盤上的delete按鈕即可刪除該約束。
目前還剩下最后兩個約束
這兩個約束需要你同時選中兩個控件,先在再添加一個button
刪掉第一個button的寬高比和固定高度約束
為第二個按鈕添加上下左右邊距約束
添加完成后我們可以發(fā)現(xiàn) 報錯了~ 這是因為此時編譯器并不知道該如何為這兩個按鈕配置高度 因為雖然有根據(jù)字體自適應 但是因為你為第二個按鈕設置了上邊距 也就是兩個按鈕上下距離為0 那么他們的高度該如何確定?第一個自適應 第二個拉長?第二個自適應 第一個拉長?這是有歧義的
我們只需要添加一個equal heights約束就好了
先選中兩個按鈕
還可以看左邊來確定是不是都選中了
如果兩個button背景都變灰就是都選中了
添加完成后就不會報錯了 更新一下frame
可以發(fā)現(xiàn)兩個按鈕高度相同
此時基本約束就講解完成了
如果沒看懂 就再看一遍 如果還沒看懂 那簡直連誠哥都不如~23333