UIStackView 简介

UIStackView简介

iOS9之后,推出了一个新的布局神器 ——UIStackView。之前也只是在网上看过相关的资料介绍,并没有仔细去弄明白时怎么一回事,只是大概知道方便 均分布局 的一个组件。然而事实来说,我还是图样图森破。
只要是类似 上下结构,或者 左右结构的 ,都可以 任性的使用 UIStackView。当然,前提是,iOS版本 是 9.0以上,所以如果项目还有支持 iOS9 以下的版本的话,那么就不太适用了。
UIStackView 简介_第1张图片

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的原理,应该是根据 相关属性,然后自动添加约束。
UIStackView 简介_第2张图片

因此,在 Distribution中选择 fill equalfill proportionally两个选项时,stackView均会为其自动添加约束。等比例的布局,在很多 UI界面 上总是可以碰到的。所以这个还是挺有 实用性的。至于 Distribution的选项,那么需要为其额外添加一些 高度约束。比如选择 fill(默认),那么需要为其添加 一些高度约束,以确定 控件的大小。
比如九宫格布局的话,可以在 vertical stackView中再嵌入三个 horizontal stackView,之后得到九宫格布局。

stackView的玩法大致就这样。最大的意义应该还是 简化约束 吧。比如 布置三个 等大小的 控件,如果单纯用 约束去控制的话,相对于适用 stackView还是会 比较费劲的。

小小挫见。

你可能感兴趣的:(ipad,iphone,ios,xcode,objective-c)