Snapkit 看这篇基本就"够"了

前言: 今天介绍的是一个三方库. SnapKit 是在iOS开发中使用添加约束的纯代码库. 使用Swift语言进行编写. 作为有一定经验的人, 对Masonry应该不陌生. 像Masonry一样. 在同一个仓库中 0.O


屏幕快照 2016-05-17 16.25.59.png
    var redView      = UIView()
    var yellowView   = UIView()
    var greenView    = UIView()
    var blackView    = UIView()
    var purpleView   = UIView()
    var cyanView     = UIView()
    var grayViewBtn  = UIButton()
    var leftView     = UIView()
    var rightView    = UIView()

在viewdidload中进行一些设置

        redView.backgroundColor = UIColor.redColor()
        yellowView.backgroundColor = UIColor.yellowColor()
        greenView.backgroundColor = UIColor.greenColor()
        blackView.backgroundColor = UIColor.blackColor()
        purpleView.backgroundColor = UIColor.purpleColor()
        cyanView.backgroundColor = UIColor.cyanColor()
        grayViewBtn.backgroundColor = UIColor.grayColor()
        leftView.backgroundColor = UIColor.cyanColor()
        rightView.backgroundColor = UIColor.orangeColor()
        // 添加
        view.addSubview(redView)
        view.addSubview(yellowView)
        view.addSubview(greenView)
        view.addSubview(blackView)
        view.addSubview(purpleView)
        view.addSubview(cyanView)
        view.addSubview(grayViewBtn)
        view.addSubview(leftView)
        view.addSubview(rightView)
        grayViewBtn.setTitle("PopLabel", forState: UIControlState.Normal)
        grayViewBtn.addTarget(self, action: #selector(ViewController.clcik), forControlEvents: UIControlEvents.TouchUpInside)
        // 进行约束
        blackView.snp_makeConstraints { make in
            make.center.equalTo(view)
            make.size.equalTo(CGSizeMake(100.0, 100.0))
        }

        redView.snp_makeConstraints { make in
            make.top.equalTo(blackView.snp_bottom).offset(20.0)
            make.left.equalTo(20.0)
            make.size.equalTo(CGSizeMake(100.0, 100.0))
        }

        yellowView.snp_makeConstraints { make in
            make.top.equalTo(blackView.snp_bottom).offset(20.0)
            make.left.equalTo(blackView.snp_right).offset(20.0)
            make.size.equalTo(CGSizeMake(100.0, 100.0))
        }

        purpleView.snp_makeConstraints { make in
            make.bottom.equalTo(blackView.snp_top).offset(-20.0)
            make.left.equalTo(blackView.snp_right).offset(20.0)
            make.size.equalTo(CGSizeMake(100.0, 100.0))
        }

        greenView.snp_makeConstraints { make in
            make.bottom.equalTo(blackView.snp_top).offset(-20.0)
            make.right.equalTo(blackView.snp_left).offset(-20.0)
            make.size.equalTo(CGSizeMake(100.0, 100.0))
        }
        // cyan
        cyanView.snp_makeConstraints(closure: { (make) in
            make.top.equalTo(redView.snp_bottom).offset(20.0)
            make.centerX.equalTo(view)
            make.size.equalTo(CGSizeMake(100.0, 100.0))
        })
        // gray
        grayViewBtn.snp_makeConstraints(closure: { (make) in
            make.bottom.equalTo(greenView.snp_top).offset(-20.0)
            make.centerX.equalTo(view)
            make.size.equalTo(CGSizeMake(100.0, 100.0))
        })
        //
        leftView.snp_makeConstraints(closure: { (make) in
            make.top.equalTo(greenView.snp_bottom).offset(20.0)
            make.bottom.equalTo(redView.snp_top).offset(-20.0)
            make.left.equalTo(view.snp_left).offset(5)
            make.width.equalTo(50)
        })

        rightView.snp_makeConstraints(closure: { (make) in
            make.top.equalTo(purpleView.snp_bottom).offset(20.0)
            make.bottom.equalTo(yellowView.snp_top).offset(-20.0)
            make.right.equalTo(view.snp_right).offset(-5)
            make.width.equalTo(leftView)
        })


SnapKit 是一个 iOS 的自动布局框架,它提供了一些方法来帮助我们更方便地进行布局。其中一个方法是使用数组来同时约束多个视图。 数组用法示例: ```swift let view1 = UIView() let view2 = UIView() let view3 = UIView() view.addSubview(view1) view.addSubview(view2) view.addSubview(view3) view1.snp.makeConstraints { (make) in make.top.equalToSuperview().offset(20) make.leading.equalToSuperview().offset(20) make.width.equalTo(100) make.height.equalTo(100) } view2.snp.makeConstraints { (make) in make.top.equalToSuperview().offset(20) make.leading.equalTo(view1.snp.trailing).offset(20) make.width.equalTo(100) make.height.equalTo(100) } view3.snp.makeConstraints { (make) in make.top.equalToSuperview().offset(20) make.leading.equalTo(view2.snp.trailing).offset(20) make.trailing.equalToSuperview().offset(-20) make.height.equalTo(100) } // 使用数组同时约束多个视图的宽度 [SnapKitConstraint(view1.snp.width), SnapKitConstraint(view2.snp.width), SnapKitConstraint(view3.snp.width)].equal(to: 100) ``` 在上面的示例中,我们创建了三个视图,并使用 `snp.makeConstraints` 方法约束它们的位置和大小。然后,使用数组 `[SnapKitConstraint(view1.snp.width), SnapKitConstraint(view2.snp.width), SnapKitConstraint(view3.snp.width)]` 来同时约束这三个视图的宽度,使它们都等于 100。 数组中的元素是 `SnapKitConstraint` 类型,它是 SnapKit 中的一个结构体,用于表示一个约束条件。在这里,我们使用 `SnapKitConstraint(view1.snp.width)` 来表示 view1 的宽度约束条件,使用 `SnapKitConstraint(view2.snp.width)` 来表示 view2 的宽度约束条件,以此类推。最后,使用 `equal(to: 100)` 方法来把它们的宽度都设置为 100。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值