iOS9 UIStackView 使用

1435028656700495.jpg

iOS 9中增加了新的控件:UIStackView,看下圖就明白作用了生蚁。

37334-66d17a0053d4b141.jpg

UIStackView 類提供了一個(gè)高效的接口用于平鋪一行或一列的視圖組合。Stack視圖使你依靠自動(dòng)布局的能力戏自,創(chuàng)建用戶接口使得可以動(dòng)態(tài)的調(diào)整設(shè)備朝向邦投、屏幕尺寸及任何可用范圍內(nèi)的變化。Stack視圖管理著所有在它的 arrangedSubviews 屬性中的視圖的布局擅笔。這些視圖根據(jù)它們?cè)?arrangedSubviews 數(shù)組中的順序沿著 Stack 視圖的軸向排列志衣。精確的布局變量根據(jù) Stack 視圖的 axis, distribution, alignment, spacing, 和其它屬性共同決定。

使用 stack 視圖猛们,打開(kāi)一個(gè)你希望編輯的 Storyboard念脯,從對(duì)象庫(kù)中拖拽出一個(gè) Horizontal Stack View 或者一個(gè) Vertical Stack View,并放置到你希望的位置上弯淘。下一步绿店,將控件或視圖拖拽放置到 stack 中,如果需要你可以繼續(xù)添加視圖或者控件給指定的 stack庐橙。Interface Builder 將根據(jù) stack 的內(nèi)容自動(dòng)調(diào)節(jié)尺寸假勿。你也可以通過(guò)修改屬性面板中 Stack視圖的屬性調(diào)整 stack 內(nèi)容的外觀。

注意:你需要負(fù)責(zé)指定 stack 視圖的位置和尺寸(可選的)态鳖。然后 stack 視圖將管理其內(nèi)容的布局和尺寸转培。

UIStackView 是 UIView 的非渲染型子類。它沒(méi)有提供其自有的任何用戶接口浆竭。相反的堡距,它只管理被其管理的視圖的位置和尺寸。因此兆蕉,有些屬性(如 backgroundColor)在 stack 視圖上是無(wú)效的。類似的缤沦,你無(wú)法重寫 layerClass虎韵,drawRect: 或 drawLayer:inContext: 方法。
這里有一系列的屬性來(lái)定義 stack 視圖如何平鋪其內(nèi)容缸废。

· axis(軸向) 屬性決定了 stack 的朝向包蓝,只有垂直或水平;  
· distribution(分布) 屬性決定了其管理的視圖在沿著其軸向上的布局企量; 
· alignment(對(duì)齊) 屬性決定了其管理的視圖在垂直于其軸向上的布局测萎;  
· spacing(空隙) 屬性決定了其管理的視圖間的最小間隙;        
· baselineRelativeArrangement 屬性決定了其視圖間的垂直間隙是否根據(jù)基線測(cè)量得到届巩;  
· layoutMarginsRelativeArrangement 屬性決定了 stack 視圖平鋪其管理的視圖時(shí)是否要參照它的布局邊距

通常情況下硅瞧,你會(huì)使用一個(gè) stack 視圖來(lái)布局小數(shù)量的視圖。你可以通過(guò)在其他 stack 視圖中嵌套多個(gè) stack 視圖的方式創(chuàng)建更加復(fù)雜的視圖層次結(jié)構(gòu)恕汇。舉例腕唧,F(xiàn)igure 5展示了一個(gè)包含兩個(gè)水平 stack 視圖的垂直 stack 視圖或辖。每一個(gè)水平 stack 視圖各包含一個(gè)標(biāo)簽和一個(gè)文本框。

Stack 視圖確保它的 arrangedSubviews 屬性將一直是其 subviews 屬性的子集合枣接。明確的說(shuō)颂暇,stack 視圖強(qiáng)制實(shí)施了以下規(guī)定:

· 無(wú)論何時(shí) stack 視圖增加了一個(gè)視圖到它的 arrangedSubviews 數(shù)組,其也將把這個(gè)視圖作為子視圖增加但惶,如果還未增加的話耳鸯。
· 無(wú)論何時(shí)一個(gè)子視圖從 stack 視圖中被移除,那么 stack 視圖也將將其從 arrangedSubviews 數(shù)組中移除膀曾。
· 從 arrangedSubviews 移除一個(gè)視圖并不會(huì)將其作為子視圖移除县爬。stack 視圖將不再管理該視圖的尺寸和位置,但是該視圖仍將是視圖結(jié)構(gòu)的一部分妓肢,并且當(dāng)其可見(jiàn)的情況下仍會(huì)被渲染到屏幕上捌省。
  當(dāng) arrangedSubviews 數(shù)組一直包含著 subviews 數(shù)組的子集合,這些數(shù)組間的順序仍然是獨(dú)立的碉钠。
· arrangedSubviews 數(shù)組的順序定義了展現(xiàn)在 stack 中的視圖的順序纲缓。對(duì)于水平 stack 視圖,這些視圖將以閱讀順序平鋪喊废,即較小索引的視圖在較大索引視圖的左側(cè)祝高。對(duì)于垂直 stack 視圖,這些視圖是從上到下平鋪的污筷,及較小索引的視圖在較大索引視圖的上方工闺。
· subviews 數(shù)組中的順序定義了子視圖在Z軸上是順序。如果視圖重疊瓣蛀,有較小索引的子視圖將出現(xiàn)在有較大索引的子視圖后方陆蟆。

https://developer.apple.com/reference/uikit/uistackview#//apple_ref/doc/uid/TP40015256

雖然是iOS9才出的新功能,但是難不倒廣大的開(kāi)發(fā)者 惋增,國(guó)內(nèi)iOS團(tuán)隊(duì)開(kāi)發(fā)的
FDStackView - 可以將 UIStackView 的最低支持版本拉低到 iOS6叠殷,無(wú)需配置,沒(méi)有代碼侵染诈皿,扔到工程里后直接用系統(tǒng) UIStackView 的 API 即可林束,同時(shí)兼容 Storyboard。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末稽亏,一起剝皮案震驚了整個(gè)濱河市壶冒,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌截歉,老刑警劉巖胖腾,帶你破解...
    沈念sama閱讀 218,640評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡胸嘁,警方通過(guò)查閱死者的電腦和手機(jī)瓶摆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,254評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)性宏,“玉大人群井,你說(shuō)我怎么就攤上這事『潦ぃ” “怎么了书斜?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,011評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)酵使。 經(jīng)常有香客問(wèn)我荐吉,道長(zhǎng),這世上最難降的妖魔是什么口渔? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,755評(píng)論 1 294
  • 正文 為了忘掉前任样屠,我火速辦了婚禮,結(jié)果婚禮上缺脉,老公的妹妹穿的比我還像新娘痪欲。我一直安慰自己,他們只是感情好攻礼,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,774評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布业踢。 她就那樣靜靜地躺著,像睡著了一般礁扮。 火紅的嫁衣襯著肌膚如雪知举。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,610評(píng)論 1 305
  • 那天太伊,我揣著相機(jī)與錄音雇锡,去河邊找鬼。 笑死僚焦,一個(gè)胖子當(dāng)著我的面吹牛遮糖,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播叠赐,決...
    沈念sama閱讀 40,352評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼屡江!你這毒婦竟也來(lái)了芭概?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,257評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤惩嘉,失蹤者是張志新(化名)和其女友劉穎罢洲,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,717評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡惹苗,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,894評(píng)論 3 336
  • 正文 我和宋清朗相戀三年殿较,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片桩蓉。...
    茶點(diǎn)故事閱讀 40,021評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡淋纲,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出院究,到底是詐尸還是另有隱情洽瞬,我是刑警寧澤,帶...
    沈念sama閱讀 35,735評(píng)論 5 346
  • 正文 年R本政府宣布业汰,位于F島的核電站伙窃,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏样漆。R本人自食惡果不足惜为障,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,354評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望放祟。 院中可真熱鬧鳍怨,春花似錦、人聲如沸舞竿。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,936評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)骗奖。三九已至确徙,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間执桌,已是汗流浹背鄙皇。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,054評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留仰挣,地道東北人伴逸。 一個(gè)月前我還...
    沈念sama閱讀 48,224評(píng)論 3 371
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像膘壶,于是被迫代替她去往敵國(guó)和親错蝴。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,974評(píng)論 2 355

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

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)颓芭、插件顷锰、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,105評(píng)論 4 62
  • UIStackView 類提供了一個(gè)高效的接口用于平鋪一行或一列的視圖組合。Stack視圖使你依靠自動(dòng)布局的能力亡问,...
    Chivalrous閱讀 790評(píng)論 1 2
  • 目錄 0官紫、前言 一、Auto Layout前世今生 二、Auto Layout基礎(chǔ)知識(shí) 1.Auto Layout...
    浮游lb閱讀 24,528評(píng)論 3 89
  • 二十束世、對(duì)包裝的建議及要求 1酝陈、If cartons are used,please put each chemic...
    努力爬格子的魚(yú)閱讀 562評(píng)論 0 0
  • 1 整個(gè)夏季 我在想念和懷疑之間搖擺 你來(lái)之前毁涉,執(zhí)著于 人間的花語(yǔ) 你離去后沉帮,無(wú)法確定 一場(chǎng)行程的結(jié)束 在愛(ài)與被愛(ài)...
    錦鈺閱讀 490評(píng)論 0 0