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))
}
待完善
网友评论