整理印象笔记之Masonry实现Autolayout
关于Masonry一些常用的方法
- 目前比较流行的Autolayout第三方库
- 其内部封装了苹果Autolayout代码
- 提高了开发效率
安装
安装地址:https://github.com/SnapKit/Masonry
常用方法
UIView *testView = [[UIView alloc]init];
testView.backgroundColor = [UIColor redColor];
[self.view addSubview:testView];
//这个方法只会添加新的约束
[testView mas_makeConstraints:^(MASConstraintMaker *make) {
}];
//这个方法会将以前的所有约束删掉,添加新的约束
[testView mas_remakeConstraints:^(MASConstraintMaker *make) {
}];
//这个方法会覆盖以前的某些特定约束
[testView mas_updateConstraints:^(MASConstraintMaker *make) {
}];
关于控件本身大小
make.width.mas_equalTo(@100);
make.height.mas_equalTo(@100);
或
make.size.mas_equalTo(CGSizeMake(100, 100));
占self.view的比例再多80
make.size.mas_equalTo(self.view).multipliedBy(0.5).offset(80);
关于控件边距
//距离右边
make.right.mas_equalTo(self.view.mas_right).offset(-20);
//距离左边
make.left.mas_equalTo(self.view.mas_left).offset(20);
//距离顶部
make.top.mas_equalTo(self.view.mas_top).offset(20);
//距离底部
make.bottom.mas_equalTo(self.view.mas_bottom).offset(-20);
//位置居中
make.centerX.mas_equalTo(self.view);
make.centerY.mas_equalTo(self.view);
make.center.mas_equalTo(self.view);
//距离四周
make.edges.mas_equalTo(self.view).insets(UIEdgeInsetsMake(20, 20, 20, 20));
为了方便编码,添加宏定义可省去mas_前缀
需要在#import “Masonry.h”之前添加俩个宏定义
#define MAS_SHORTHAND
#define MAS_SHORTHAND_GLOBALS
#import "Masonry.h"
加完之后代码使用起来比较方便
make.width.equalTo(@100);
make.height.equalTo(@100);
或
make.size.equalTo(CGSizeMake(100, 100));
占self.view的比例再多80
make.size.equalTo(self.view).multipliedBy(0.5).offset(80);
//距离右边
make.right.equalTo(self.view.mas_right).offset(-20);
//距离左边
make.left.equalTo(self.view.mas_left).offset(20);
//距离顶部
make.top.equalTo(self.view.mas_top).offset(20);
//距离底部
make.bottom.equalTo(self.view.mas_bottom).offset(-20);
//位置居中
make.centerX.equalTo(self.view);
make.centerY.equalTo(self.view);
make.center.equalTo(self.view);
//距离四周
make.edges.equalTo(self.view).insets(UIEdgeInsetsMake(20, 20, 20, 20));