UIStackView的distribution属性属性笔记
做iOS开发8年了吧,对于一些技术还是有点模糊。也没有学笔记的习惯,有些问题虽然解决了,但是头脑中没有一个清晰的思路。以至于后来遇到同样的问题,还是需要摸索摸索。
这里主要记录一下:
-
UIStackView的属性的理解
-
UIStackView在 确定了大小约束 和 没有确定大小约束 两种情况下,子视图的布局的不同。
一、UIStackView的基本属性
首先了解一下主轴、纵轴的概念:
主轴: UIStackView的布局方向【布局方向是水平,主轴就是水平】
纵轴:UIStackView的布局的另一个方向 【布局方向是水平,主轴是垂直】
UIStackView主要依靠axis
、distribution
、alignment
、spacing
属性进行子视图的布局。
- axis: 子视图的布局方向,水平和垂直
- distribution: 子视图的主轴的布局方式
- alignment:子视图的纵轴的对齐方式
- spacing:子视图之间的间距
二、distribution属性
对于Fill类型的布局:
- StackView大小不确定:通过指定子元素大小,确定StackView的大小
- StackView大小确定:子元素填充StackView的空间
-
UIStackViewDistributionFill
子元素填满主轴方向StackView空间。
-
StackView大小约束确定:设置其他子元素的高度,留下一个子元素的高度自适应填充StackView空间
StackView大小约束确定-
StackView大小约束不确定: 所有的子元素指定高度
StackView大小约束不确定
-
-
-
UIStackViewDistributionFillEqually
自动调整子元素在主轴方向的大小,使他们大小一致,填满整个StackView空间。
-
StackView的大小约束确定:子元素自动调整高度。
StackView大小约束确定 -
StackView的大小约束不确定:指定一个子元素的高度,其他的子元素自动调整相同高度
StackView的大小约束不确定
-
-
UIStackViewDistributionFillProportionally
子元素根据自身Frame中的主轴大小,确定占用StackView空间的百分比。
StackView大小约束确定:子元素会等比例适配
StackView大小不确定:StackView的大小会根据子元素在主轴上大小,自定适配。
-
UIStackViewDistributionEqualSpacingUIStackViewDistributionEqualSpacing
: StackView的大小约束确定的情况下使用 -
UIStackViewDistributionEqualCenteringUIStackViewDistributionEqualCentering
: StackView的大小约束确定的情况下使用