美文网首页
Swift~自动布局Snapkit 使用介绍

Swift~自动布局Snapkit 使用介绍

作者: 凛冬将至2002 | 来源:发表于2019-06-12 21:04 被阅读0次

SnapKit 下载地址:
GtiHub地址:https://github.com/SnapKit/SnapKit
Swift 项目中一般cocoapod 集成,再此就不做过多介绍

SnapKit 基本用法

注意:使用 snp_makeConstraints 方法的元素必须事先添加到父元素的中,和使用Masonry类似。

以下代码SnapKit 版本5.0.0 ,相较于之前版本_ 替换 .
snp.makeConstraints 替换 snp_makeConstraints
更符合当前Swift5.0 的语法样式

一、snp.makeConstraints

self.view.addSubview(self.redView)
self.redView.snp.makeConstraints { (make) in
    make.center.equalTo(self.view)
    make.size.equalTo(CGSize(width: 100,height: 100))
}
/// 添加一个redView,居于View中间,大小(100,100)
/// 分别设置各个相对边距(superview为父类视图,下同)
 make.left.equalTo(superview.snp.left).offset(10)
 make.right.equalTo(superview.snp.right).offset(10)
 make.top.equalTo(superview.snp.top).offset(10)         
 make.bottom.equalTo(superview.snp.bottom).offset(10)
//设置宽和高
make.width.equalTo(60);
make.height.equalTo(60);
//.设置center和款高比
make.center.equalTo(superView);
make.width.equalTo(superView).multipliedBy(1.00/3);
make.height.equalTo(superView).multipliedBy(0.25);

//.关于约束优先级,此处要注意约束冲突的问题,统一约束优先级大的生效
 make.left.equalTo(100)
 make.left.equalTo(self.view.snp.left).offset(10)
 make.left.equalTo(20).priority(700)
 make.left.equalTo(40).priority(.high)
 make.left.equalTo(60).priority(.medium)
 make.left.equalTo(80).priority(.low)
/// 视图等宽布局
func snapView() -> Void {
        self.view.addSubview(self.redView)
        self.view.addSubview(self.blueView)
        self.view.addSubview(self.greenView)
        self.redView.snp.makeConstraints { (make) in
            make.left.equalTo(self.view).offset(10)
            make.height.equalTo(100)
            make.top.equalTo(self.view).offset(100)
//            make.width.greaterThanOrEqualTo(50)
        }
        self.blueView.snp.makeConstraints { (make) in
            make.left.equalTo(self.redView.snp.right).offset(10)
            make.top.equalTo(self.redView.snp.top)
            make.height.equalTo(self.redView)
            make.width.equalTo(self.redView)
            
        }
        self.greenView.snp.makeConstraints { (make) in
            make.left.equalTo(self.blueView.snp.right).offset(10)
            make.top.equalTo(self.redView.snp.top)
            make.height.equalTo(self.redView)
            make.right.equalTo(self.view.snp.right).offset(-10)
            make.width.equalTo(self.redView)
        }
    }

二、snp.updateConstraints

self.redView.snp.updateConstraints { (make) in
    make.size.equalTo(CGSize(width: 50, height: 50))
}

三、snp.remakeConstraints

self.redView.snp.remakeConstraints { (make) in
    make.size.equalTo(CGSize(width: 50, height: 50))
}

待完善

相关文章

网友评论

      本文标题:Swift~自动布局Snapkit 使用介绍

      本文链接:https://www.haomeiwen.com/subject/kpyrfctx.html