masonry的使用介紹
- 注意masonry兩個(gè)宏的使用.
#define MAS_SHORTHAND //如果定義了這個(gè)宏修械,那么使用masonry的時(shí)候份蝴,就可以省略mas_前綴
//define this constant if you want to enable auto-boxing for default syntax
#define MAS_SHORTHAND_GLOBALS //如果定義了這個(gè)宏幅骄,那么它會(huì)把你傳入的基本數(shù)據(jù)類型自動(dòng)裝箱成對(duì)象類型
/**** 注意:以上兩個(gè)宏媳维,只有定義在導(dǎo)入"Masonry.h"之前才有用,否則無(wú)效 *****/
第一種寫法(常規(guī))
[blueView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.view.mas_left).offset(50);
make.right.equalTo(self.view.mas_right).offset(-50);
make.top.equalTo(self.view.mas_top).offset(50);
make.bottom.equalTo(self.view.mas_bottom).offset(-50);
}];
設(shè)置上下左右四個(gè)距離,注意:右和底部,需要向上偏移所以需要寫賦值
- 省略原則,當(dāng)需要參照的控件在同一側(cè)(左邊對(duì)左邊)可以省略參照控件的方向.
- 當(dāng)偏移的值相同時(shí),上左可以在一個(gè)里面寫
[blueView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.top.equalTo(self.view).offset(50);
make.right.bottom.equalTo(self.view).offset(-50);
}];
- 一行代碼搞定的簡(jiǎn)單布局,使用內(nèi)邊距,注意內(nèi)邊距都是正值.和offset不同
[blueView mas_makeConstraints:^(MASConstraintMaker *make) {
//設(shè)置內(nèi)邊距一句代碼搞定(注意內(nèi)邊距)
make.edges.mas_equalTo(UIEdgeInsetsMake(50, 50, 50, 50));
}];
- 更新約束
//更新約束
[blueView mas_updateConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.view).offset(100);
}];
- 重置約束,重置相當(dāng)于刪除原來(lái)的全部約束.
//重置之前所有的約束(誰(shuí)調(diào)用這個(gè)方法就重置誰(shuí)的約束),重置相當(dāng)于刪除原來(lái)所有的約束
[blueView mas_remakeConstraints:^(MASConstraintMaker *make) {
//添加重置后你想設(shè)置的約束
make.left.top.equalTo(self.view).offset(100);
make.right.bottom.equalTo(self.view).offset(-50);
}];