UIStackView学习笔记
UIStackView介绍
UIStackView是可以利用自动布局,创建可以动态适应设备方向、屏幕尺寸和可用空间发生任意变化的用户视图。当子视图发生改变时,UIStackView可以自动调整,省去了大量代码
UIStackView初始化
![请添加图片描述](https://img-blog.csdnimg.cn/514675da8b8144c89bbbf2c5cf363d57.png)
let stackView = UIStackView()
view.addSubview(stackView)
stackView.axis = .horizontal
stackView.distribution = .fillEqually
stackView.spacing = 10
stackView.alignment = .fill
stackView.frame = CGRect(x: 0, y: 100, width: view.frame.width, height: 300)
let view1 = UIView()
stackView.addArrangedSubview(view1)
view1.backgroundColor = .blue
let view2 = UIView()
stackView.addArrangedSubview(view2)
view2.backgroundColor = .yellow
let view3 = UIView()
stackView.addArrangedSubview(view3)
view3.backgroundColor = .red
UIStackView相关方法
- init(frame: CGRect) :普通初始化
- init(arrangedSubviews views: [UIView]) :通过子视图数组创建UIStackView
- addArrangedSubview(view: UIView):添加子视图
- removeArrangedSubview(view: UIView):删除子视图
- insertArrangedSubview(view: UIView, at stackIndex: Int) 在指定位置插入子视图
- arrangedSubviews: [UIView] { get }:获取子视图
UIStackView属性
- Axis:布局方式
- UILayoutConstraintAxisHorizontal 水平布局方向
- UILayoutConstraintAxisVertical 垂直布局方向
- spacing:子控件之间的最小间距
- distribution
- UIStackViewDistributionFill 一个空间时充满
- UIStackViewDistributionFillEqually 子控件平分尺寸
- UIStackViewDistributionFillProportionally 按照约束的尺寸排列,没有充满时会拉伸最后一个子控件以充满
- UIStackViewDistributionEqualSpacing 等间距排列
- UIStackViewDistributionEqualCentering 中心距离相等
- alignment:
- UIStackViewAlignmentFill 水平布局时为高度充满,竖直布局时为宽度充满
- UIStackViewAlignmentLeading 左对齐
- UIStackViewAlignmentTop 顶部对齐
- UIStackViewAlignmentFirstBaseline 首个控件基线对齐,水平布局时有效
- UIStackViewAlignmentCenter 居中对齐
- UIStackViewAlignmentTrailing 右对齐
- UIStackViewAlignmentBottom 底部对齐
- UIStackViewAlignmentLastBaseline 最后控件基线对齐,水平布局有效