aotuLayout(masonry、snapKit)约束布局动画更新约束

我在新版本项目开发中遇到了一个地方需要修改之前用snapKit布局的view的约束,因为项目需求所以初始化的约束无法用frame替代,上网搜了好久才找到解决办法,控件初始化照样用约束布局
        ///楼盘信息
        buildingInfoBaseView = NewHouseDetailBuildingInfoView(self)
        baseScorllview.addSubview(buildingInfoBaseView)
        buildingInfoBaseView.snp.makeConstraints { (make) in
            make.top.equalTo(doorModelBaseView.snp.bottom).offset(15)
            make.left.equalTo(baseScorllview)
            make.size.equalTo(CGSize.init(width: Tools.WIDTH, height: 360))
        }                                                              								
	var buildingBool = false
然后在某个点击事件里面这样写
if buildingBool == true {
            UIView.animate(withDuration: 0.25, animations: {//UIView简单动画的方法,写上0.25秒动画时间
                self.buildingInfoBaseView.snp.remakeConstraints({ (make) in
                    make.top.equalTo(self.doorModelBaseView.snp.bottom).offset(15)
                    make.left.equalTo(self.baseScorllview)
                    make.size.equalTo(CGSize.init(width: Tools.WIDTH, height: 360))
                })
                self.view.layoutIfNeeded()//告诉当前控制器的View要更新约束了,动态更新约束,没有这句的话更新约束就没有动画效果
            }) { (true) in
                self.buildingBool = false
                }

        }else{
            UIView.animate(withDuration: 0.25, animations: {
                self.buildingInfoBaseView.snp.remakeConstraints { (make) in
                    make.top.equalTo(self.doorModelBaseView.snp.bottom).offset(15)
                    make.left.equalTo(self.baseScorllview)
                    make.size.equalTo(CGSize.init(width: Tools.WIDTH, height: 400))
                }

            self.view.layoutIfNeeded()//动态更新约束,
              
            }) { (true) in
                self.buildingBool = true
            }

        }

    }

这样子就能动画更新约束了

希望对各位小伙伴有所帮助


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值