在開發(fā)項目中卡辰,為了適配各種尺寸的設備琴许,我們通常使用Auto Layout來進行布局的約束荠商,storyboard铣除,xib是xcode提供的故事版布局酒贬,雖然他們可以完成大多數(shù)的布局型雳,但是一些相對比較復雜的布局缺并不能輕易的實現(xiàn)
Auto Layout是Xcode提供的一種布局方式亩鬼,可以通過代碼來實現(xiàn)約束梢夯,但是他的使用卻比較困難饥脑,而通過snapkit這個開源的框架恳邀,我們能夠奇松的視線布局的約束
SnapKit的簡單使用
let label = UILabel().then {
$0.font = .systemFont(ofSize: 20)
$0.textColor = .white
$0.backgroundColor = .blue
}
self.view.addSubview(label)
label.snp.makeConstraints {
$0.center.equalToSuperview()
$0.width.equalTo(screeW)
$0.height.equalToSuperview().multipliedBy(0.5)
}
- 初始化一個控件(label),這里使用的then語法
- 添加到控制器的視圖當中
- SnapKit自動布局灶轰,這一步一定要在addsubview后面去完成谣沸,否則會報錯
SnapKit的使用說明
- center:表示的中心原點(當然也可以設置centerX:X軸,centerY:Y軸),equalToSuperview:相對于父類框往,
multipliedBy:表示倍數(shù)鳄抒,
equalTo:可以直接是數(shù)值,也可以是snp的值- $0.edges.equalTo(UIEdgeInsetsMake(10, 10, 10, 10)): 直接使用edg來設置上下左右的間距椰弊。
注意:使用edg的時候许溅,需要確保這么使用后,你的控件的寬度秉版,高度等不能為負值贤重,不然會有一堆警告影響運行速度