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 最后控件基线对齐,水平布局有效
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值