//define this constant if you want to use Masonry without the 'mas_' prefix
// 如果你想在使用Masonry框架时省略mas_的前缀请定义下面这个宏
#define MAS_SHORTHAND
//define this constant if you want to enable auto-boxing for default syntax
// 如果想让equalTo也带有装箱功能请定义下面这个宏
#define MAS_SHORTHAND_GLOBALS
#warning mark - 上面两个宏一定要放在框架的头文件上面
#import "Masonry.h"
//例如:
@implementation ViewController
- (void)viewDidLoad {
[superviewDidLoad];
UIView *blueView = [[UIViewalloc]init];
blueView.backgroundColor = [UIColorblueColor];
[self.viewaddSubview:blueView];
// 添加约束
[blueView makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.view.mas_left).offset(50);
make.top.equalTo(self.view.mas_top).offset(50);
make.right.equalTo(self.view.mas_right).offset(-50);
make.bottom.equalTo(self.view.mas_bottom).offset(-50);
// 当约束控件的属性和参照控件的属性相同时参照控件的属性可以省略不写
// make.left.equalTo(self.view).offset(50);
// make.top.equalTo(self.view).offset(50);
// make.right.equalTo(self.view).offset(-50);
// make.bottom.equalTo(self.view).offset(-50);
// 当多个属性的offset值一样时属性也可以连写
// make.left.top.equalTo(self.view).offset(50);
// make.right.bottom.equalTo(self.view).offset(-50);
// make.edges.equalTo(UIEdgeInsetsMake(50, 50, 50, 50));
// 默认equalTo不能把基本数据类型转换成对象类型,
//mas_equalTo可以把基本数据类型转换成对象类型,这个过程叫装箱,反过来叫拆箱
// make.edges.mas_equalTo(UIEdgeInsetsMake(50, 50, 50, 50));
}];
// 更新约束
// 如果之前添加过相同属性的约束,在此方法内可以更新此属性的值
// 如果之前缺少约束,在此方法中可以添加上缺少的约束
// 如果之前不缺少约束,在此方法中可以添加新的约束属性,但是可能造成约束冲突
[blueView updateConstraints:^(MASConstraintMaker *make) {
// make.left.equalTo(self.view.mas_left).offset(150);
// make.width.equalTo(10);
}];
// 删除约束
// 如果实现此方法什么也不做会把之前添加的blueView的所有约束清空
// 如果实现此方法会把之前约束清空,然后再重新加上新的约束
[blueView remakeConstraints:^(MASConstraintMaker *make) {
make.edges.mas_equalTo(UIEdgeInsetsMake(150,50,150,50));
}];
}