iOS 使用 stack view 布局

1,187 阅读1分钟
原文链接: www.jianshu.com

iOS 9 增加了一个类 UIStackView ,UIStackView 提供了一种新的管理子视图布局的方式,UIStackView 有点类似于前端的

标签,可以将控件划分管理,我们可以把控件添加的UIStackView 里面进行分组。

使用 UIStackView 布局的时候,操作子视图会非常的方便我们来看一下效果图, demo 传送门


优势

如果上面效果我们 用之前的约束进行布局的话会非常复杂,在每添加一个控件都需要重新计算约束,如果新控件要插入已有的两个控件之间,我们还需要把这两个控件的约束删除,然后重新添加。想想还是挺复杂的,如果使用 StackView 的话处理这种问题就非常的简单了,我们只需要找到指定的 StackView ,然后插入想要的位置就可以了

教程

xcode 上提供了一种简单的方式对控件之间进行分组,如下图所示



选中在 storyboard 中选中 stackview 可以看到如下的设置项


Axis: 设置 UIStackView 的方向,Vertical 和 Horizontal。
Alignment: 子视图的排列方式
Spacing: 子视图之间的间隔

我们可以动态的给 StackView 添加子视图,通过如下代码

stackview.addArrangedSubview()         //直接在最后面添加控件
stackview.insertArrangedSubview()  //插入控件到指定位置

也可以动态的删除已有的视图,通过如下代码

stackview.removeArrangedSubview(view) //这里需要注意的是 我们还需要调用 view.removeFromSuperview(),把子视图重父视图删除