一、UIStackView简介
- 概念:一个堆叠视图的容器,iOS9的新特性。
- 用途:StackView及其子视图会自适应界面,减少我们设置约束的工作量。
- 特点:
- -类似ContainView,不会渲染到界面上。
- -StackView中的子视图只能朝一个方向进行排布,要么水平要么垂直。
- -StackView支持多层嵌套
- -约束比StackView的自适应优先级高,可以通过设置约束来调整StackView的布局
- -支持属性动画
- -不能滚动
- 属性:
- -Axis轴:->用来设置子视图的排列方式(H/V)
- -Aligement:->用来设置子视图的对齐方式
- -Distribution->用来设置子视图的分布方式(fill-填充)
-
-spacing->子视图之间的间距
属性展示
二、属性详解
- @Aligement-子视图的对齐方式
- Fill:子视图在排列的垂直方向上填充容器
fill填充
- Top:子视图在排列方向上顶部对齐
top顶部对齐
- Center:子视图在排列方向上居中对齐
Center居中对齐
- Bottom:子视图在排列方向上底部对齐
Bottom底部对齐
- Leading:子视图在排列方向上左对齐
leading左对齐
- Trailing:子视图在排列方向上右对齐
Trailing右对齐
- First Baseline:Label子视图基于第一行文字的基线对齐,只适用于Label
First Baseline-首行label对齐
- Last Baseline:Label子视图基于最后一次行文字的基线对齐,只适用于Label
Last Baseline末行label对齐
- @Distribution-子视图的分布方式
- Fill:子视图在排列方向上填满容器
Fill-填满
- Fill Equally:子视图在排列方向上填满容器,且按相等尺寸分布
Fill Equally-按相等尺寸分布
- Fill Proportionally:子视图在排列方向上填满容器,且按照原始比例分布
Fill Proportionally-按照原始比例分布
- Equal Spacing:排列方向上子视图等间距
Equal Spacing-子视图等间距
- Equal Centering:排列方向上子视图中心点之间的距离等间距
Equal Centering-中心点之间的距离等间距
- @Spacing-子视图之间的间距
- Baseline Relation:设置spacing为上Label基线之间的间距(垂直排列时基线才会有间距)
三、subView和arrangedSubView
对于Stack View的子控件添加和移除,我们是这样描述的。
- 添加-->(Stack View管理的subview)
- addArrangedSubview:
- insertArrangedSubview:atIndex: arrangedSubviews
数组是subviews属性的子集。
- 移除-->(Stack View管理的subview)
- removeArrangedSubview:-->移除是指移除Stack View内部子控件的约束,并没有真正的把控件从父视图上移除。
- removeFromSuperview-->从视图层次结构中删除,从父视图上删除
四、知识点小结
- 1、Axis表示Stack View的subview是水平排布还是垂直排布。
- 2、Alignment控制subview对齐方式。
- 3、Distribution定义subview的分布方式。
- 4、Spacing 为subview间的最小间距。
网友评论