iOS故事板(storyboard)的約束

在移動端開發(fā)過程中,可視化的搭建UI效率是非常高的,蘋果官方也是強(qiáng)力推薦。我們現(xiàn)在來學(xué)一學(xué)如何利用系統(tǒng)自帶的故事版(storyboard)來搭建UI根时。可視化搭建UI除了可以使用storyboard也可以使用xib辰晕。其實使用它們也是非常容易的蛤迎,只需要在xcode的右下角處搜索控件的名字,然后拖拽到故事板上即可含友,如圖

拖拉創(chuàng)建控件

(為了方便觀看替裆,我們先隨便給它設(shè)個背景色)

設(shè)置控件的背景顏色

拖拽完之后。就是根據(jù)需求去設(shè)置控件的大小窘问,以及屏幕的適配(iphone4~iPhone 6s plus辆童、或者各種ipad型號)等。在這個設(shè)置大小的點惠赫,我們就要用到約束把鉴。以前用代碼也是要用到約束去限制每個控件的大小的。因此約束的概念在這里也就不展開講了儿咱。(假如你實在不想用約束的話庭砍,其實也是可以實現(xiàn)屏幕的適配的场晶。可以用比例的大小去設(shè)置怠缸,類似于h5峰搪,用屏幕比例的方法,具體細(xì)節(jié)可以私聊)】瘢現(xiàn)在主要講講如何實現(xiàn)給控件加上約束。

(現(xiàn)在先拖拉一個UIView來設(shè)置一個距離頂部的約束)

控件添加頂部約束

這樣設(shè)置完頂部的約束之后就會出現(xiàn)如下的現(xiàn)象

添加第一個約束

出現(xiàn)紅色說明還有欠缺的約束沒有加完使套。頂部那個線就是我們添加的約束罐呼。假如我們先寫距離頂部的距離是201。那么我們不論切換到哪個屏幕的大小View距離頂部的距離都是201侦高。我們再往左邊添加一個約束嫉柴,然后設(shè)置它的寬高為100。即如圖

去掉約束邊緣



添加其他約束

約束完之后就可以了(如果出現(xiàn)的約束是藍(lán)色的奉呛,說明約束正常)

約束完成

這樣約束完之后的那個UIView的大小和位置就是固定的了计螺。以后不論修改成哪個屏幕都是一樣的。

不過這樣有個缺點瞧壮,它的距離的位置和大小是絕對的而不是相對的登馒。假如你用iphone4s展示出這個界面,就覺得剛剛好的話咆槽,那么用iphone6就會顯得有點偏陈轿,用例子看看,如圖

iphone6模擬器運(yùn)行效果


iphone4s模擬器運(yùn)行效果

所以秦忿,我們應(yīng)該得用相對位置和相對大小麦射。用相對位置和相對大小的話,它是根據(jù)屏幕的大小去自動適配控件的位置和大小灯谣,這樣子就可以比較符合開發(fā)員的預(yù)期需求潜秋。那么我們?nèi)绾蝸碜瞿兀课覀儊碓囋嚕?br>

假如我們想讓它水平居中胎许,那么我們把原來的左邊約束給刪除峻呛,添加一個水平居中的約束點擊View,然后點到約束的控制面板呐萨,找到左邊的約束杀饵,選中,按delete刪除

刪除部分約束

(ps如果選不中約束按delete的話谬擦,會把整個View都刪除掉的切距,不過不用擔(dān)心,按command+Z撤銷回來即可惨远,然后再選中約束谜悟,把它刪除掉)

刪除完約束的效果

刪除完約束之后約束會爆紅是正郴靶ぃ現(xiàn)象,不管它葡幸,我們來添加水平居中的約束最筒,先點擊View,然后點擊約束約束蔚叨,horizantally(水平)打上勾床蜘,選擇update然后add上去,如圖

添加水平居中約束

這樣不論是在哪個屏幕上,我們的控件都水平居中了蔑水。

添加水平居中后的效果

這樣就水平居中了邢锯。既然是相對約束,當(dāng)然不止僅僅只能水平居中了搀别,比如說我要偏左一點怎么辦丹擎?偏右一點怎么辦?改水平居中系數(shù)歇父!看圖說話

修改居中系數(shù)

點擊那個edit出現(xiàn)后修改那個Multiplier蒂培,那個就是系數(shù)值,比1小就是往左榜苫,比1大就是往右护戳,我們來設(shè)置一下0.6和1.8的效果看看

水平居中系數(shù)為0.6

(ps按command和-可以縮小故事版的視圖,方便查看,按command和+就是放大,值得注意一點的是拗窃,至少要原故事版大小或者比原故事板大小的大才能在上面修改控件器虾,不然頂多只能移動一下視圖的位置而已。雙擊視圖就可以恢復(fù)原大小了)

水平居中系數(shù)為1.8

這樣看是不是很明顯?那么這樣就可以根據(jù)實際需求設(shè)定我們需要的位置了。垂直居中也是這樣設(shè)置。就是選中水平約束下面那個(vertically)

垂直居中約束

寫完相對位置之后么伯,我們應(yīng)該要來想想怎么設(shè)置相對大小了。為了方便演示卡儒,先把原來那個刪除了田柔,重新拉一個UIView。把它的大小和屏幕設(shè)置成等高等寬骨望。

先選中當(dāng)前控件和要等高等寬的父控件硬爆,把equal widths和equal heights打上勾就可以,add上去就可以了擎鸠。

與父視圖等高等寬

(ps這里要注意選擇當(dāng)前控件和要等高等寬的父控件按住command用鼠標(biāo)點擊左邊的控件名就可以了缀磕,就是框起來的那兩個)

添加完之后約束那里還是爆紅,是因為我們還沒有加位置約束,我們給它左邊和上邊都是0.0袜蚕,這樣就可以了

添加等高等寬約束

接下來點中View糟把,選擇約束,添加左牲剃、上為0

添加位置約束

OK遣疯,到這里就可以實現(xiàn)相對大小了。

添加完成約束的效果

根據(jù)那個相對位置的設(shè)置凿傅,同理的缠犀,我們想修改它不是滿屏大小,也可以使用系數(shù)

相對大小的系數(shù)

我們把寬度修改成0.4試試

寬度為父控件的0.4

這樣子View的寬度不論是切換到哪個屏幕都是占屏幕總寬的0.4大小了聪舒。寬高同理夭坪,想學(xué)習(xí)的自己慢慢嘗試。

學(xué)到這里过椎,我們就已經(jīng)學(xué)會了加絕對值的約束以及加相對值的約束。接下來的各種組合就看項目的實際需求以及你們的各種發(fā)揮各種想象力了戏仓。加油疚宇!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市赏殃,隨后出現(xiàn)的幾起案子敷待,更是在濱河造成了極大的恐慌,老刑警劉巖仁热,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件榜揖,死亡現(xiàn)場離奇詭異,居然都是意外死亡抗蠢,警方通過查閱死者的電腦和手機(jī)举哟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來迅矛,“玉大人妨猩,你說我怎么就攤上這事』喟” “怎么了壶硅?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵,是天一觀的道長销斟。 經(jīng)常有香客問我庐椒,道長,這世上最難降的妖魔是什么蚂踊? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任约谈,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘窗宇。我一直安慰自己措伐,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布军俊。 她就那樣靜靜地躺著侥加,像睡著了一般。 火紅的嫁衣襯著肌膚如雪粪躬。 梳的紋絲不亂的頭發(fā)上担败,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天,我揣著相機(jī)與錄音镰官,去河邊找鬼提前。 笑死,一個胖子當(dāng)著我的面吹牛泳唠,可吹牛的內(nèi)容都是我干的狈网。 我是一名探鬼主播,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼笨腥,長吁一口氣:“原來是場噩夢啊……” “哼拓哺!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起脖母,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤士鸥,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后谆级,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體烤礁,經(jīng)...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年肥照,在試婚紗的時候發(fā)現(xiàn)自己被綠了脚仔。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,605評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡舆绎,死狀恐怖玻侥,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情亿蒸,我是刑警寧澤凑兰,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站边锁,受9級特大地震影響姑食,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜茅坛,卻給世界環(huán)境...
    茶點故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一音半、第九天 我趴在偏房一處隱蔽的房頂上張望则拷。 院中可真熱鬧,春花似錦曹鸠、人聲如沸煌茬。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽坛善。三九已至,卻和暖如春邻眷,著一層夾襖步出監(jiān)牢的瞬間眠屎,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工肆饶, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留改衩,地道東北人。 一個月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓驯镊,卻偏偏與公主長得像葫督,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子板惑,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,472評論 2 348

推薦閱讀更多精彩內(nèi)容