UIStackView简介
iOS9之后,推出了一个新的布局神器 ——UIStackView
。之前也只是在网上看过相关的资料介绍,并没有仔细去弄明白时怎么一回事,只是大概知道方便 均分布局 的一个组件。然而事实来说,我还是图样图森破。
只要是类似 上下结构,或者 左右结构的 ,都可以 任性的使用 UIStackView
。当然,前提是,iOS版本 是 9.0以上,所以如果项目还有支持 iOS9 以下的版本的话,那么就不太适用了。
UIStackView
有两种形式,一种是横向布局 Vertical Stack View
,一种是竖向布局 Horizontal Stack View
。
以 Vertical Stack View
为例吧。
首先,在 storyboard 中,拖取一个 Vertical Stack View
,并设置好相关约束。
图片描述
在右边属性栏可以看到,5个设置参数。即 Axis
(控制 stackView
是要 vertical 还是 horizontal),Alignment
(控制 stackView
中子控件的布局位置,是要fill
,leading
,trailing
,center
),Distribution(控制
stackView中子控件的大小),
Spacing(控制
stackView中子控件之间的距离),
baseline realitive`(决定子控件,貌似只在 vertical 中有效)。
图片描述
eg:拖入两个 UIView
,此时,我是在 Distribution
的选项中,选择了 fill equal
。这时,拖入的两个 view
均会布局为自动布满。另外,可以看到,其实stackView
的原理,应该是根据 相关属性,然后自动添加约束。
因此,在 Distribution
中选择 fill equal
和fill proportionally
两个选项时,stackView
均会为其自动添加约束。等比例的布局,在很多 UI界面 上总是可以碰到的。所以这个还是挺有 实用性的。至于 Distribution
的选项,那么需要为其额外添加一些 高度约束。比如选择 fill
(默认),那么需要为其添加 一些高度约束,以确定 控件的大小。
比如九宫格布局的话,可以在 vertical stackView
中再嵌入三个 horizontal stackView
,之后得到九宫格布局。
stackView
的玩法大致就这样。最大的意义应该还是 简化约束 吧。比如 布置三个 等大小的 控件,如果单纯用 约束去控制的话,相对于适用 stackView
还是会 比较费劲的。
小小挫见。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。