前言
此篇文章作為在使用UIStackView前的一些答疑,既是掃盲篇,也是實(shí)用篇散址。以下會(huì)講述一些實(shí)用的案例,目的就是讓更多的人擁抱UIStackView锈玉。同時(shí)歡迎小伙伴通過(guò)評(píng)論區(qū)講講使用StackView遇到的問(wèn)題爪飘。
答疑
排列視圖間距大小不一
問(wèn):排列視圖間距大小不一,可以用UIStackView嗎拉背?
答:當(dāng)然可以用师崎,UIStackView雖然有space屬性,但是適用于所有的排列視圖椅棺,如果想要指定某個(gè)排列視圖之間的間距犁罩,有以下兩種方法:
- 使用
- (void)setCustomSpacing:(CGFloat)spacing afterView:(UIView *)arrangedSubview API_AVAILABLE(ios(11.0),tvos(11.0));
方法,不過(guò)這個(gè)方法有版本的限制两疚。 - 使用一個(gè)UIView進(jìn)行填充床估;即在需要間隙的位置插入一個(gè)空的view,并設(shè)置好其寬度或高度來(lái)充當(dāng)兩個(gè)排列視圖的間距诱渤。
排列視圖對(duì)齊位置不一致
問(wèn):排列視圖的對(duì)齊位置不一致丐巫,如何使用UIStackView?
答:我們可以選擇一種合適的對(duì)齊方式保證適用于絕大多數(shù)排列視圖,剩下的視圖使用UIView進(jìn)行封裝递胧,然后在View中進(jìn)行約束布局碑韵。
排列視圖大小不一致
問(wèn):排列視圖的大小不一致,可以用UIStackView嗎缎脾?
答:可以的祝闻,UIStackView中的排列視圖不需要設(shè)置位置,至于尺寸大小可以根據(jù)自身需要設(shè)置遗菠。(設(shè)置方式AutoLayout
)
靈活多變的UI設(shè)計(jì)
問(wèn):多變的UI設(shè)計(jì)適合使用UIStackView嗎联喘?
答:再合適不過(guò)了,為什么這么說(shuō)呢辙纬,雖然通過(guò)AutoLayout
可以自適應(yīng)豁遭,來(lái)解決靈活多變的UI布局,但是這會(huì)有繁瑣的代碼來(lái)控制牲平。而通過(guò)使用UIStackView
堤框,我們僅添加一次排列視圖,而后可以通過(guò)控制排列視圖的顯示或隱藏(hidden)
就能使UIStackView
重新布局纵柿。
列表可用蜈抓?
問(wèn):UIStackView可以用于列表布局嗎?
答:可以昂儒,使用UIStackView可以快捷的布局簡(jiǎn)單列表沟使,相比較UITableView較為簡(jiǎn)單,使用UITableView往往需要設(shè)置代理渊跋,實(shí)現(xiàn)代理等腊嗡。
具體做法:一般采用UIScrollView + UIStackView
,ScrollView控制滾動(dòng)拾酝,StackView管理內(nèi)容燕少。
The end
總而言之,如果你怕麻煩蒿囤,那就快來(lái)使用UIStackView客们,把麻煩事都交給它。
如果有比較難以理解或者初學(xué)者不懂的問(wèn)題材诽,稍后也會(huì)在這整理底挫。