UIStackView基础篇

本文介绍如何使用UIStackView实现iOS应用中视图的等分布局。通过设置垂直轴向、等分分布及间距,可以轻松管理多个子视图的布局。文中提供了一个具体的实现案例。



        Stack View能够将它所含的View以各种方式沿其轴向进行分布,同时也可以将View沿某个方向等距分布


例://实现子控件等分

    UIStackView *discountStackView = [[UIStackView allocinit];

    //设置轴向

    discountStackView.axis = UILayoutConstraintAxisVertical;

    //设置分布,等分分布

    discountStackView.distribution = UIStackViewDistributionFillEqually;

    //设置分布间距

    discountStackView.spacing = 10;

    

    //根据自定义模型数据的个数遍历创建视图

    for(SUDiscoModel *dm in _shopDataModel.discoDataModel)

    {

        SUInforView *inf = [[SUInforView allocinit];

        inf.discData = dm;

        [discountStackView addArrangedSubview:inf];

    }

    [contentView addSubview:discountStackView];

    //约束

    [discountStackView mas_makeConstraints:^(MASConstraintMaker *make) {

        make.left.offset(10);

        make.right.offset(-10);

        make.top.equalTo(discountLabel.mas_bottom).offset(10);

        make.height.offset(_shopDataModel.discoDataModel.count*30);

    }];


效果:


        Stack View能够将它所含的View以各种方式沿其轴向进行分布,同时也可以将View沿某个方向等距分布


例://实现子控件等分

    UIStackView *discountStackView = [[UIStackView allocinit];

    //设置轴向

    discountStackView.axis = UILayoutConstraintAxisVertical;

    //设置分布,等分分布

    discountStackView.distribution = UIStackViewDistributionFillEqually;

    //设置分布间距

    discountStackView.spacing = 10;

    

    //根据自定义模型数据的个数遍历创建视图

    for(SUDiscoModel *dm in _shopDataModel.discoDataModel)

    {

        SUInforView *inf = [[SUInforView allocinit];

        inf.discData = dm;

        [discountStackView addArrangedSubview:inf];

    }

    [contentView addSubview:discountStackView];

    //约束

    [discountStackView mas_makeConstraints:^(MASConstraintMaker *make) {

        make.left.offset(10);

        make.right.offset(-10);

        make.top.equalTo(discountLabel.mas_bottom).offset(10);

        make.height.offset(_shopDataModel.discoDataModel.count*30);

    }];


效果:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值