1. 使用CocoaPods導(dǎo)入
$ pod 'MJRefresh'?
2. 在項目中導(dǎo)入Masonry.h 文件
#import "Masonry.h"
3. ?示例:有 blueview redview ?changebtn 三個控件,按如圖1 排列

代碼如下:
?//Masonry的使用
主要用到 ?mas_makeConstraints /?mas_remakeConstraints方法
**** ?有一點需要注明,在使用masonry的方法前,一定要先把控件添加到父視圖,不然會發(fā)生崩潰,提示找不到父視圖?。?!
? ? blueview= [[UIViewalloc]init];
? ? blueview.backgroundColor = [UIColor blueColor];
? ? [self.view addSubview:blueview];
? ?redview= [[UIViewalloc]init];
? ? redview.backgroundColor = [UIColor redColor];
? ? [self.view addSubview:redview];
?? UIButton* changebtn = [[UIButtonalloc]init];
? ? changebtn.backgroundColor? = [UIColor greenColor];
? ? [self.view ?addSubview:changebtn];
? ? [changebtnaddTarget:nil action:@selector(changePosition) forControlEvents:UIControlEventTouchUpInside];
//blueview的約束
? ? [blueview mas_makeConstraints:^(MASConstraintMaker *make) {
? ? ? ? make.left.equalTo(self.view).offset(20);
? ? ? ? make.top.equalTo(self.view).offset(100);
? ? ? ? make.right.equalTo(self.view).offset(-20);
? ? ? ? make.height.equalTo(@50);
? ? }];
? ? //redview的約束
? ? [redview mas_makeConstraints:^(MASConstraintMaker *make) {
? ? ? ? make.left.equalTo(self->blueview.mas_centerX);
? ? ? ? make.top.equalTo(self->blueview.mas_bottom).offset(20);
? ? ? ? make.right.equalTo(self->blueview.mas_right);
? ? ? ? make.height.equalTo(self->blueview.mas_height);
? ? }];
? ?//changebtn的約束
? ? [changebtn mas_makeConstraints:^(MASConstraintMaker*make) {
? ? ? ? make.top.equalTo(self->redview.mas_bottom).offset(60);
? ? ? ? make.centerX.equalTo(self.view.mas_centerX);
? ? ? ? make.height.equalTo(self->blueview.mas_height);
? ? ? ? make.left.equalTo(self.view).offset(120);
? ?}];
4. 若想通過點擊按鈕,改變blueview redview 的位置,添加事件
使用 ?mas_remakeConstraints方法即可
- (void)changePosition{
? ? [redview mas_remakeConstraints:^(MASConstraintMaker *make) {
? ? ? ? make.left.equalTo(self.view).offset(20);
? ? ? ? make.top.equalTo(self.view).offset(100);
? ? ? ? make.right.equalTo(self.view).offset(-20);
? ? ? ? make.height.equalTo(@50);
? ? }];
? ? [blueview mas_remakeConstraints:^(MASConstraintMaker *make) {
? ? ? ? make.left.equalTo(self->redview.mas_centerX);
? ? ? ? make.top.equalTo(self->redview.mas_bottom).offset(20);
? ? ? ? make.right.equalTo(self->redview.mas_right);
? ? ? ? make.height.equalTo(self->redview.mas_height);
? ? }];
}
結(jié)果如圖2,changebtn的位置,我們不用管,大體看一下效果即可
