先提供幾個文檔參考下:html
官方文檔ios
翻譯文檔app
參考教程工具
UIStackView 是 iOS 9 中新增的一個視圖,用來管理一行或一列視圖的組合。佈局
雖然UIStackView
繼承自UIView
,但UIView
的不少屬性和方法對UIStackView
並不起做用。相反的,UIStackView
新增了幾個獨特的屬性,而它也正是經過這些屬性來管理位於其上的子視圖。一旦UIStackView
的這些屬性發生變化,它的子視圖就會被從新排布。ui
這裏不打算對UIStackView
的全部屬性以及用法作詳細的討論,只是想簡單地總結下使用UIStackView
的好壞。翻譯
首先,iOS 8 不支持UIStackView
,因此若是你想要兼容 iOS 8,基本就不用考慮這個方案,否則維護成本直接就翻了一倍。code
除去這個缺點,我已經想不到其餘不使用UIStackView
的理由了。htm
減小自定義約束。 在Interface Builder
上使用Autolayout
後,基本上整個界面上約束亂飛,雜亂無章,管理也十分麻煩。而UIStackView
可以自動管理它內部的約束,這樣大部分的約束也所以被自動解決了,只要嵌套好UIStackView
,就能夠用不多的約束達到自動佈局界面的目的。繼承
手寫界面代碼。 手寫界面代碼在自動佈局方面一直都是弱項,但UIStackView
對自動佈局的支持,爲手寫代碼減小了極大的工做量和維護成本。只要把視圖分層包裝好,經過設置UIStackView
的屬性,就能夠自動佈局整個界面了。
層次關係。 UIStackView
使得界面控件之間的關係再一次縷清,雖然這不是重點。
從 iOS 8 的 Size Class
,到 iOS 9 中的分屏功能和UIStackView
等一系列新增工具,均可以看出蘋果在自動佈局方面的發展。自動佈局也逐步變成一個必要的方案。那這些新增的工具天然也是必須掌握的。