在 iOS 9 中使用 UIStackView 的总结

先提供几个文档参考下:html

官方文档ios

翻译文档app

参考教程工具


UIStackView 是 iOS 9 中新增的一个视图,用来管理一行或一列视图的组合。布局

虽然UIStackView继承自UIView,但UIView的不少属性和方法对UIStackView并不起做用。相反的,UIStackView新增了几个独特的属性,而它也正是经过这些属性来管理位于其上的子视图。一旦UIStackView的这些属性发生变化,它的子视图就会被从新排布。ui

这里不打算对UIStackView的全部属性以及用法作详细的讨论,只是想简单地总结下使用UIStackView的好坏。翻译

首先,iOS 8 不支持UIStackView,因此若是你想要兼容 iOS 8,基本就不用考虑这个方案,否则维护成本直接就翻了一倍。code

除去这个缺点,我已经想不到其余不使用UIStackView的理由了。htm

  1. 减小自定义约束。 在Interface Builder上使用Autolayout后,基本上整个界面上约束乱飞,杂乱无章,管理也十分麻烦。而UIStackView可以自动管理它内部的约束,这样大部分的约束也所以被自动解决了,只要嵌套好UIStackView,就能够用不多的约束达到自动布局界面的目的。继承

  2. 手写界面代码。 手写界面代码在自动布局方面一直都是弱项,但UIStackView对自动布局的支持,为手写代码减小了极大的工做量和维护成本。只要把视图分层包装好,经过设置UIStackView的属性,就能够自动布局整个界面了。

  3. 层次关系。 UIStackView使得界面控件之间的关系再一次缕清,虽然这不是重点。

从 iOS 8 的 Size Class,到 iOS 9 中的分屏功能和UIStackView等一系列新增工具,均可以看出苹果在自动布局方面的发展。自动布局也逐步变成一个必要的方案。那这些新增的工具天然也是必须掌握的。

相关文章
相关标签/搜索