转载

在 iOS 9 中使用 UIStackView 的总结

先提供几个文档参考下:

官方文档

翻译文档

参考教程

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

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

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

首先,iOS 8 不支持 UIStackView ,所以如果你想要兼容 iOS 8,基本就不用考虑这个方案,不然维护成本直接就翻了一倍。

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

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

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

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

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

正文到此结束
Loading...