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