一、简介
Snapkit是Masonry的oc版本
二、使用以及注意事项
1、等宽、等间距、九宫排列的话,使用SnapKitExtend控件,通过
pod 'SnapKitExtend'
引用
2、布局之前一定要先添加到父视图上否则会引起崩溃
3、
updateConstraints
只能用于参照物不变的情况下,否则会崩溃,如>果参照物需要变的话用remakeConstraints
view2.snp.remakeConstraints { (make) in make.top.equalTo(otherView.snp.bottom) make.height.equalTo(25) make.left.equalToSuperview().offset(10) make.right.equalToSuperview().offset(-5) }
4、布局更改动画效果的话,一定要在更新完布局后加:>
tagetView.layoutIfNeeded()
才会起作用UIView.animate(withDuration: 0.25) { self.oneView.snp.updateConstraints { (make) in make.height.equalTo(100) } self.oneView.layoutIfNeeded() }
5、两个自适应宽度控件,会导致右边控件的自适应问题,可以通过设置
setContentHuggingPriority
的“别扯我”优先级,优先级越高,越不会被>拉长变形,比如有两个自使用的UILabel,则设置左边label的优先级比较>高即可leftLabel.setContentHuggingPriority(UILayoutPriority(rawValue: 888), for: .horizontal) leftLabel.snp.makeConstraints { (maker) in maker.left.equalTo(oneImg.snp_right).offset(16) maker.top.equalToSuperview().offset(16) maker.height.equalTo(16) } rightLabel.snp.makeConstraints { (maker) in maker.left.equalTo(leftLabel.snp_right).offset(8) maker.top.equalTo(16) maker.height.equalTo(16) }
6、UITableCell自适应问题,可参照“下班不写代码的文章”https://www.jianshu.com/p/60b5f752dc7a
网友评论