Masonry使用

一、使用Maaonry注意事項(xiàng)

1.在使用Masonry添加約束之前,需要在addSubview之后才能使用,否則會(huì)導(dǎo)致崩潰。

2.在添加約束時(shí)初學(xué)者經(jīng)常會(huì)出現(xiàn)一些錯(cuò)誤,約束出現(xiàn)問(wèn)題的原因一般就是兩種:約束沖突和缺少約束。對(duì)于這兩種問(wèn)題,可以通過(guò)調(diào)試和log排查。

3.之前使用Interface Builder添加約束,如果約束有錯(cuò)誤直接就可以看出來(lái),并且會(huì)以紅色或者黃色警告體現(xiàn)出來(lái)。而Masonry則不會(huì)直觀的體現(xiàn)出來(lái),而是以運(yùn)行過(guò)程中崩潰或者打印異常log體現(xiàn),所以這也是手寫(xiě)代碼進(jìn)行AutoLayout的一個(gè)缺點(diǎn)。

二、基礎(chǔ)使用

Masonry基礎(chǔ)API

?mas_makeConstraints()? 添加約束

?mas_remakeConstraints()? 移除之前的約束,重新添加新的約束

?mas_updateConstraints()?? 更新約束

equalTo()

mas_equalTo()

width()? ? 用來(lái)表示寬度,例如代表view的寬度。代表坐標(biāo)系對(duì)象

mas_width()????用來(lái)獲取寬度的值。獲取坐標(biāo)系對(duì)象的值。

三、常用方法

1.設(shè)置內(nèi)邊距

通過(guò)insets簡(jiǎn)化設(shè)置內(nèi)邊距的方式

????[ self.view2 mas_makeConstraints:^(MASConstraintMaker *make {make.edges.equalTo(self.view1).insets(UIEdgeInsetsMake(5, 10, 15, 20));}];

2.更新約束

??? [self.view2 mas_makeConstraints:^(MASConstraintMaker *make){

??????? make.center.equalTo(self.view1).offset(0);

??????? make.size.mas_equalTo(CGSizeMake(80, 80)); }];

3.大于等于或小于等于某個(gè)值的約束

??????????? //設(shè)置寬度大于等于300

? ? ? ? ? ? make.width.greaterThanOrEqualTo(@300);

??????????? //設(shè)施寬度小于等于300

????????????make.width.lessThanOrEqualTo(@300);

4.設(shè)置約束優(yōu)先級(jí)

????Masonry為我們提供了三個(gè)默認(rèn)的方法,priorityLow()、priorityMedium()、priorityHigh(),? ?這三個(gè)方法內(nèi)部對(duì)應(yīng)著不同的默認(rèn)優(yōu)先級(jí)。

? 除了這三個(gè)方法,我們也可以自己設(shè)置優(yōu)先級(jí)的值,可以通過(guò)priority()方法來(lái)設(shè)置。

???? [self.view2 mas_makeConstraints:^(MASConstraintMaker *maker)? ? ? {

????????? maker.center.equalTo(self.view1);

????????? maker.width.equalTo(self.view1).priorityLow();

????????? maker.width.equalTo(@20).priorityHigh();

????????? ma height ker..equalTo(self.view1).priority(200);

????????? maker.height.equalTo(@40).priority(1000);

}];

5.約束比例

//設(shè)置當(dāng)前約束值乘以多少,例如view2的寬度是view1的兩倍

make.width.equalTo(self.view1).multipliedBy(2);

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Masonry是一個(gè)輕量級(jí)的布局框架,擁有自己的描述語(yǔ)法,采用更優(yōu)雅的鏈?zhǔn)秸Z(yǔ)法封裝自動(dòng)布局,簡(jiǎn)潔明了并具有高可讀性...
    3dcc6cf93bb5閱讀 1,940評(píng)論 0 1
  • (一)Masonry介紹 Masonry是一個(gè)輕量級(jí)的布局框架 擁有自己的描述語(yǔ)法 采用更優(yōu)雅的鏈?zhǔn)秸Z(yǔ)法封裝自動(dòng)布...
    木易林1閱讀 2,587評(píng)論 0 3
  • 轉(zhuǎn)載:https://www.cnblogs.com/liutingIOS/p/5406858.html 一、Ma...
    JasonYuan123閱讀 1,496評(píng)論 0 1
  • 以上是純手寫(xiě)代碼所經(jīng)歷的關(guān)于頁(yè)面布局的三個(gè)時(shí)期 在iphone1-iphone3gs時(shí)代 window的size固...
    UILabelkell閱讀 635評(píng)論 0 2
  • [置頂]iOS - Masonry使用中的一些整理 標(biāo)簽:iOS資源大全iOS常用方法iOS學(xué)習(xí)資料Masonry...
    DreamMakerSky閱讀 3,269評(píng)論 0 4

友情鏈接更多精彩內(nèi)容