国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Swift自動(dòng)布局: SnapKit,相當(dāng)于Objective-C中的Masonry。

這篇具有很好參考價(jià)值的文章主要介紹了Swift自動(dòng)布局: SnapKit,相當(dāng)于Objective-C中的Masonry。。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

OC里面,我們常用Masonry,SDAutoLayout。
Swift里,我們常用SnapKit。

一、項(xiàng)目集成
Podfile 導(dǎo)入

pod 'SnapKit'

使用

import SnapKit

#注意#

通過(guò) snp.makeConstraints 方法給view添加約束,約束有幾種,分別是邊距,寬,高,左上右下距離,基準(zhǔn)線。
添加過(guò)約束后可以有修正,修正有位移修正(inset、offset)和倍率修正(multipliedBy)
語(yǔ)法一般是: make.equalTo 或 make.greaterThanOrEqualTo 或 make.lessThanOrEqualTo + 倍數(shù)和位移修正。
.equalTo:等于 
.lessThanOrEqualTo:小于等于
.greaterThanOrEqualTo:大于等于
注意: 使用 snp.makeConstraints 方法的元素必須事先添加到父元素的中,例如:self.view.addSubview(view)

對(duì)于如何使用SnapKit,這里簡(jiǎn)單講一些常用的場(chǎng)景:

場(chǎng)景1:

在view中心添加一個(gè)長(zhǎng)寬200的view

swift 自動(dòng)布局,Swift總匯,swift,objective-c,開發(fā)語(yǔ)言,ios,xcode,swiftui,cocoapods

box1.snp.makeConstraints({ (make) in
                make.width.height.equalTo(200)
                make.center.equalTo(self.view)
            })

場(chǎng)景2:

在紅色view里,添加一個(gè)子view,距離頂部30px

swift 自動(dòng)布局,Swift總匯,swift,objective-c,開發(fā)語(yǔ)言,ios,xcode,swiftui,cocoapods

box1.backgroundColor = UIColor.red
box2.backgroundColor = UIColor.green
view.addSubview(box1)
box1.addSubview(box2)
box1.snp.makeConstraints({ (make) in
    make.width.height.equalTo(200)
    make.center.equalTo(self.view)
})

box2.snp.makeConstraints({ (make) in
     make.top.equalTo(box1.snp.top).offset(30)       //距離box1 30距離
     make.left.equalTo(box1)             //等效于 make.left.equalTo(box1.snp.left)
     make.right.equalTo(box1)
     make.height.equalTo(30)
})

場(chǎng)景3:

添加兩個(gè)view,高寬相等,綠色的緊靠紅色上下排列

swift 自動(dòng)布局,Swift總匯,swift,objective-c,開發(fā)語(yǔ)言,ios,xcode,swiftui,cocoapods

box1.backgroundColor = UIColor.red
            box2.backgroundColor = UIColor.green
            view.addSubview(box1)
            view.addSubview(box2)
            box1.snp.makeConstraints({ (make) in     
                make.left.equalTo(20)      //距離左邊20
                make.right.equalTo(-20)    //距離右邊20,注意,這里要為負(fù)的20
                make.top.equalTo(100)
                make.height.equalTo(50)
            })
            box2.snp.makeConstraints({ (make) in

                make.top.equalTo(box1.snp.bottom)      //頂部靠著box1底部
                make.left.right.height.equalTo(box1)    //左右高和box1對(duì)齊

            })

場(chǎng)景4:

添加兩個(gè)view,高寬相等,左右排列

swift 自動(dòng)布局,Swift總匯,swift,objective-c,開發(fā)語(yǔ)言,ios,xcode,swiftui,cocoapods

box1.backgroundColor = UIColor.red
            box2.backgroundColor = UIColor.green
            view.addSubview(box1)
            view.addSubview(box2)
            box1.snp.makeConstraints({ (make) in
                make.width.height.equalTo(100)
                make.left.equalTo(view)
                make.top.equalTo(100)
            })
            box2.snp.makeConstraints({ (make) in

                make.size.equalTo(box1)             //大小等于box1
                make.top.equalTo(box1)              //頂部和box1對(duì)齊
                make.right.equalTo(view)

            })

場(chǎng)景5:

添加兩個(gè)view,綠色大小為紅色一半,上下排列

swift 自動(dòng)布局,Swift總匯,swift,objective-c,開發(fā)語(yǔ)言,ios,xcode,swiftui,cocoapods

box1.backgroundColor = UIColor.red
            box2.backgroundColor = UIColor.green
            view.addSubview(box1)
            view.addSubview(box2)
            box1.snp.makeConstraints({ (make) in

                make.size.equalTo(CGSize(width: 200, height: 200))
                make.centerX.equalTo(view)
                make.centerY.equalTo(view).offset(-100)     //中心點(diǎn)為view中心偏上100距離
            })
            box2.snp.makeConstraints({ (make) in

                make.size.equalTo(box1).multipliedBy(0.5)   //大小為box1一半
                make.centerX.equalTo(box1)
                make.top.equalTo(box1.snp.bottom).offset(20)

            })

場(chǎng)景6:

添加兩個(gè)view,綠色在紅色里面,內(nèi)邊距設(shè)置為依次10、20、30、40
swift 自動(dòng)布局,Swift總匯,swift,objective-c,開發(fā)語(yǔ)言,ios,xcode,swiftui,cocoapods

box1.backgroundColor = UIColor.red
            box2.backgroundColor = UIColor.green
            view.addSubview(box1)
            box1.addSubview(box2)
            box1.snp.makeConstraints({ (make) in
                make.width.height.equalTo(200)
                make.center.equalTo(self.view)
            })
            box2.snp.makeConstraints({ (make) in
                //內(nèi)距box1邊距分別為10、20、30、40
                make.edges.equalTo(box1).inset(UIEdgeInsetsMake(10, 20, 30, 40))
            })

總結(jié):
以上幾種是比較常用的使用場(chǎng)景,涉及到一些基本屬性。
當(dāng)然如果你用過(guò)Masonry,會(huì)發(fā)現(xiàn)和Masonry很像,畢竟是同一團(tuán)隊(duì)操刀的嘛。
多用多熟練嘛,biu~
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-796792.html

到了這里,關(guān)于Swift自動(dòng)布局: SnapKit,相當(dāng)于Objective-C中的Masonry。的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包