標籤:git
因爲前兩天都在學習自動佈局的使用,可是又以爲蘋果原生的方式太過於麻煩,並且也不易於理解,昨天聽人說了有個第三方框架也能夠實現自動佈局的功能,而後在https://github.com/上找到了Mansonry這個框架,使用起來真的減小了不少時間,並且代碼直觀,更加容易理解。github
送上源碼地址:https://github.com/Masonry/Masonry框架
以上說明了與參照控件的關係中三種條件的對應替代方法。佈局
以上說明了上下左右等屬性的對應替代屬性。學習
一些設置約束的方法,更多內容請參考網站說明。網站
1 //設置約束 2 - (NSArray *)mas_makeConstraints:(void(^)(MASConstraintMaker *))block; 3 4 //若是以前已經有約束,則更新新的約束,若是沒有約束,則添加約束 5 - (NSArray *)mas_updateConstraints:(void(^)(MASConstraintMaker *))block; 6 7 //將以前的約束所有刪除,添加新的約束 8 - (NSArray *)mas_remakeConstraints:(void(^)(MASConstraintMaker *make))block;
如下爲代碼使用實現佈局效果:spa
1 //添加兩個控件 2 UIView *blueView = [[UIView alloc] init]; 3 blueView.backgroundColor = [UIColor blueColor]; 4 blueView.translatesAutoresizingMaskIntoConstraints = NO; 5 [self.view addSubview:blueView]; 6 7 UIView *redView = [[UIView alloc] init]; 8 redView.backgroundColor = [UIColor redColor]; 9 redView.translatesAutoresizingMaskIntoConstraints = NO; 10 [self.view addSubview:redView]; 11 12 //給藍色View設置約束 13 [blueView mas_makeConstraints:^(MASConstraintMaker *make) { 14 make.left.equalTo(self.view.mas_left).offset(30);//和父view的左邊間距爲30; 15 make.bottom.equalTo(self.view.mas_bottom).offset(-30);//和父view的底部間距爲30; 16 make.right.equalTo(redView.mas_left).offset(-30);//和紅色view的間距爲30; 17 make.height.mas_equalTo(50);//藍色view的高度爲50 18 }]; 19 20 //給紅色View設置約束 21 [redView mas_makeConstraints:^(MASConstraintMaker *make) { 22 make.right.equalTo(self.view.mas_right).offset(-30);//和父view的右邊間距爲30; 23 make.bottom.equalTo(blueView.mas_bottom);//和藍色view的底部對齊 24 make.height.equalTo(blueView.mas_height);//和藍色view的高度相等 25 make.width.equalTo(blueView.mas_width);//和藍色view的寬度相等 26 }];
效果圖以下:3d
用了這個框架以後,再對比以前使用代碼佈局的效果,感受就是一個天一個地啊,並且在某些地方使用block感受比使用delegate更加實用和簡捷方便,看來之後仍是要多逛逛https://github.com/仍是會獲得不少收穫的。code