Stackview
它继承于UIView,用来管理一行或一列视图的布局(堆叠视图的控制器类视图,所谓堆叠视图时一种平铺式的线性布局方式,不可重叠,布局方向也不可交错.
Axis
stack 的朝向,只有垂直或水平
Distribution
管理的视图在沿着其轴向上的布局
如果减去所有的spacing,所有arrangedSubview的固有尺寸(intrinsicContentSize)之和不能填满StackView,那么就按照Hugging的优先级将其拉伸。反之,如果超出StackView的尺寸则按CompressionResistance的优先级压缩。如果优先级相同,就按排列顺序来拉伸或压缩。
Alignment
管理的视图在垂直于其轴向上的布局
在StackView轴向的垂直方向上拉伸所有子view来填充StackView
Leading:靠左
Center:居中
Trailing:靠右
UIStackViewAlignmentFirstBaseline:用于stackview是水平轴向时,按照第一个子视图中文字的第一行对齐
UIStackViewAlignmentLastBaseline:用于stackview是水平轴向时,按照最后一个子视图中文字的最后一行对齐
Spacing
管理的视图间的最小间隙
layoutMarginsRelativeArrangement
stack 视图平铺其管理的视图时是否要参照它的布局边距
baselineRelativeArrangement
stack 视图平铺其管理的视图时是否要参照它的布局边距
创建UIStackView
addArrangedSubview和addSubview有很大的区别,使用前者是将视图添加进StackView的布局管理,后者只是简单的加在视图的层级上,并不接受StackView的布局管理。
Label
.text, .numberOfLines…
Gesture
TapGestureRecognize:敲击手势(单击或双击)
PanGestureRecognizer:拖动手势
PinchGestureRecognizer:缩放手势
SwipeGestureRecognizer:擦碰手势
RotationGestureRecognizer:旋转手势
LongPressGestureRecognizer:长按手势