SnapKit的介紹
??SnapKit是Swift中的一個第三方自適應(yīng)布局庫听系,它對應(yīng)于OC中的Masonry贝奇。
SnapKit的基本語法與使用
- 基本語法:
.equalTo/equalToSuperView:等于
.lessThanOrEqualTo:小于等于
.greaterThanOrEqualTo:大于等于
.inset/.offset:位移修正
.multipliedBy:倍率修正
- 視圖屬性:
view.snp.left
view.snp.right
view.snp.top
view.snp.bottom
view.snp.leading
view.snp.trailing
view.snp.width
view.snp.height
view.snp.centerX
view.snp.centerY
view.snp.baseline
- 基本使用:
??使用snp.makeConstraints方法之前需要將View添加到父元素中.
??--1 居中
make.center.equalToSuperview()
OR:
make.centerX.equalToSuperview()
???--2 top,left,bottom,right,width,height
make.top.equalTo()
make.left.equalTo(100)
make.bottom.equalTo()
make.right.equalTo()
make.width.equalTo(100)
make.height.equalTo(100)
OR:
make.top.equalToSuperview()
make.left.equalToSuperview()
make.bottom.equalToSuperview()
make.right.equalToSuperview()
make.width.equalToSuperview()
make.height.equalToSuperview()
??3 內(nèi)部修正:inset
make.edges.equalTo(someView).inset(UIEdgeInsetsMake(10, 15, 20, 25))
??4 外部修正:offset
make.size.equalTo(someView).offset(-20)
??5 倍率:multiplied
make.size.equalTo(someView).multipliedBy(0.38)
- 約束的設(shè)置
??1 刪除約束
//保存約束的引用
var deleteSomeConstraint: Constraint?
....
deleteSomeConstraint = make.width.height.equalTo(100).constraint
...
//刪除不需要的約束
deleteSomeConstraint?.deactivate()
???2 更新約束
var updateSomeConstraint: Constraint?
...
updateSomeConstraint = make.size.equalTo(someView).offset(-20).constraint
...
//更新相應(yīng)的約束:方式一
updateSomeConstraint?.update(offset: -30)
//更新相應(yīng)的約束:方式二
someView.snp.updateConstraints { (make) in
make.width.equalTo(200)
}
???3 重做約束
someView.snp.remakeConstraints { (make) in
make.edges.equalTo(anotherView).inset(UIEdgeInsetsMake(25, 30, 5, 5))
}
???4 最小虹菲、最大約束
//設(shè)置當(dāng)前View不大于self.view的寬度
make.width.height.lessThanOrEqualTo(self.view.snp.width)
//設(shè)置當(dāng)前View不小于self.view的寬度
make.width.height.greaterThanOrEqualTo(self.view.snp.width)
參考:
航歌的技術(shù)博客