先提供几个文档参考下: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
等一系列新增工具,均可以看出苹果在自动布局方面的发展。自动布局也逐步变成一个必要的方案。那这些新增的工具天然也是必须掌握的。