#import "RootViewController.h" #import "Masonry.h" @interface RootViewController () @end @implementation RootViewController - (void)viewDidLoad { [super viewDidLoad]; #pragma mark label // 添加约束,不需要这只frame UILabel *label = [UILabel new]; label.backgroundColor = [UIColor redColor]; // 添加父视图,视图添加完成之后才能进行布局 [self.view addSubview:label]; // 布局,实现布局方法 [label mas_makeConstraints:^(MASConstraintMaker *make) { // 距离上面50 // make:相当于你要布局的视图,equalTo(参照视图的对象),如果参照视图是self.view,可以不设置参照视图的属性(就是top) make.top.offset(); // 距离左边100; make.left.offset(); // 距离右边100 make.right.equalTo(self.view).offset(-); // 距离下面500 make.bottom.equalTo(self.view).offset(-); }]; #pragma mark label1 UILabel *label1 = [UILabel new]; label1.backgroundColor = [UIColor greenColor]; [self.view addSubview:label1]; // 布局label1 // 先布局参照视图,否则约束容易丢失 [label1 mas_makeConstraints:^(MASConstraintMaker *make) { //和label左边一致 // equalTo(自定义视图),需要设置视图的属性 // 如果是数值为0可以不写offset() make.leading.equalTo(label.mas_leading); //和label右边一致 make.trailing.equalTo(label.mas_trailing); //上边距离label50 make.top.equalTo(label.mas_bottom).offset(); // 高度60 // mas_equalTo(数值) make.height.mas_equalTo(); }]; #pragma mark label2 UILabel *label2 = [UILabel new]; label2.backgroundColor = [UIColor cyanColor]; [self.view addSubview:label2]; // 设置距离参照视图的内边距(上左下右) UIEdgeInsets padding = UIEdgeInsetsMake(, , , ); [label2 mas_makeConstraints:^(MASConstraintMaker *make) { // make.top.equalTo(self.view).offset(400); // make.left.equalTo(self.view).offset(100); // make.right.equalTo(self.view).offset(-100); // make.bottom.equalTo(self.view).offset(-100); // 设置约束视图的边界距离self.view边界值 make.edges.equalTo(self.view).insets(padding); }]; #pragma mark label3 UILabel *label3 = [UILabel new]; label3.backgroundColor = [UIColor orangeColor]; [self.view addSubview:label3]; [label3 mas_makeConstraints:^(MASConstraintMaker *make) { // 设置中心点一致 make.center.equalTo(label2); // 设置大小 // make.width = label2.width - 40 // make.height = label2.height - 60 make.size.equalTo(label2).sizeOffset(CGSizeMake(-, -)); }]; }