1 // 2 // ViewController.m 3 // E01.Masonry基本使用 4 // 5 // Created by apple on 15/8/8. 6 // Copyright (c) 2015年 apple. All rights reserved. 7 // 8 9 #import "ViewController.h" 10 11 //define this constant if you want to use Masonry without the ‘mas_‘ prefix 12 // 如果你想在使用Masonry时省略mas_前缀请定义下面这个宏 13 #define MAS_SHORTHAND 14 15 16 //define this constant if you want to enable auto-boxing for default syntax 17 //如果你想让equalTo默认也带有自动装箱功能请定义下面这个宏 18 #define MAS_SHORTHAND_GLOBALS 19 20 #warning mark- 上面两个宏一定要定义在Masonry.h头文件的上面 21 #import "Masonry.h" 22 23 @interface ViewController () 24 25 @end 26 27 @implementation ViewController 28 // 链式语言 29 - (void)viewDidLoad { 30 [super viewDidLoad]; 31 32 UIView *bleuView = [[UIView alloc] init]; 33 bleuView.backgroundColor = [UIColor blueColor]; 34 [self.view addSubview:bleuView]; 35 36 // 给blueView添加约束 37 [bleuView makeConstraints:^(MASConstraintMaker *make) { 38 make.left.equalTo(self.view.left).offset(50); 39 make.top.equalTo(self.view.mas_top).offset(50); 40 make.right.equalTo(self.view.mas_right).offset(-50); 41 make.bottom.equalTo(self.view.mas_bottom).offset(-50); 42 43 // 当给控件添加约束时此控件的约束属性和参照控件的属性相同时,参照控件的属性可以省略不写 44 // make.left.equalTo(self.view).offset(50); 45 // make.top.equalTo(self.view).offset(50); 46 // make.right.equalTo(self.view).offset(-50); 47 // make.bottom.equalTo(self.view).offset(-50); 48 49 // 当给控件添加约束时参照同一个控件,并且参照物的属性和要添加约束控件的属性相同,并且它们的offset值相同时,属性可以连续设置 50 // make.left.top.equalTo(self.view).offset(50); 51 // make.bottom.right.equalTo(self.view).offset(-50); 52 53 // make.edges.equalTo(UIEdgeInsetsMake(50, 50, 50, 50)); 54 55 // 给blueView添加内边距 mas_equalTo可以把基本数据类型转换成对象类型(这个过程叫装箱) 56 // make.edges.mas_equalTo(UIEdgeInsetsMake(50, 50, 50, 50)); 57 58 59 }]; 60 61 // 给blueVeiw更新约束 -更新约束时如果已经添加过相同的约束属性时在此方法会覆盖前面的约束,使用新的约束 62 // 如果在此方法添加的有新的约束属性时可能会出现约束冲突,但是如果控件在此方法之前缺少约束,在此方法也可以添加缺少的约束 63 [bleuView updateConstraints:^(MASConstraintMaker *make) { 64 // make.left.equalTo(self.view).offset(100); 65 // make.width.equalTo(200);//不能用 66 // make.bottom.equalTo(self.view.mas_bottom).offset(-50); 67 68 }]; 69 70 // 删除blueView所有的约束,(如果在方法内部什么也没做,是删除之前blueView所有的约束,如果在此方法中添加约束,会删除之前添加的,再重新添加新的约束) 71 [bleuView remakeConstraints:^(MASConstraintMaker *make) { 72 make.edges.mas_equalTo(UIEdgeInsetsMake(150, 150, 50, 50)); 73 74 }]; 75 } 76 77 @end
时间: 2024-10-12 19:28:41