对Masonry的MASConstraintMaker进行扩展,让它支持另外一种风格(不用写那么多make)的链式操作
只对常用的方法进行封装,满足日常需求,若遇到特殊情况(如设置优先级),请使用原写法
原写法
UIView *view1 = [[UIView alloc] init];
view1.backgroundColor = [UIColor redColor];
UIView *view2 = [[UIView alloc] init];
view2.backgroundColor = [UIColor greenColor];
[self.view addSubview:view1];
[self.view addSubview:view2];
[view1 mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(200, 100));
make.top.mas_equalTo(self.view).mas_offset(100);
make.centerX.mas_equalTo(self.view);
}];
[view2 mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(view1);
make.top.mas_equalTo(view1.mas_bottom);
make.centerX.mas_equalTo(self.view);
}];
引入后写法
UIView *view1 = [[UIView alloc] init];
view1.backgroundColor = [UIColor redColor];
UIView *view2 = [[UIView alloc] init];
view2.backgroundColor = [UIColor greenColor];
[self.view addSubview:view1];
[self.view addSubview:view2];
[view1 mas_makeConstraints:^(MASConstraintMaker *make) {
make.xs_sizeEqualTo(CGSizeMake(200, 100))
// 第二个参数为偏移量
.xs_topEqualTo(self.view, 100)
.xs_centerXEqualTo(self.view);
}];
[view2 mas_makeConstraints:^(MASConstraintMaker *make) {
make.xs_sizeEqualTo(view1)
// 第二个参数为偏移量,不传默认为0
.xs_topEqualTo(view1.mas_bottom)
.xs_centerXEqualTo(self.view);
}];| 方法 | 对应 |
|---|---|
| xs_leftEqualTo(value, offset?) | left.mas_equalTo(value).mas_offset(offset) |
| xs_topEqualTo(value, offset?) | top.mas_equalTo(value).mas_offset(offset) |
| xs_rightEqualTo(value, offset?) | right.mas_equalTo(value).mas_offset(offset) |
| xs_bottomEqualTo(value, offset?) | bottom.mas_equalTo(value).mas_offset(offset) |
| xs_leadingEqualTo(value, offset?) | leading.mas_equalTo(value).mas_offset(offset) |
| xs_baselineEqualTo(value, offset?) | baseline.mas_equalTo(value).mas_offset(offset) |
| xs_centerXEqualTo(value, offset?) | centerX.mas_equalTo(value).mas_offset(offset) |
| xs_centerYEqualTo(value, offset?) | centerY.mas_equalTo(value).mas_offset(offset) |
| xs_centerEqualTo(value) | center.mas_equalTo(value) |
| xs_sizeEqualTo(value) | size.mas_equalTo(value) |
| xs_edgesEqualTo(value) | edges.mas_equalTo(value) |
| xs_widthEqualTo(value) | width.mas_equalTo(value) |
| xs_heightEqualTo(value) | height.mas_equalTo(value) |
| xs_leftGreaterThanOrEqualTo(value, offset?) | left.mas_greaterThanOrEqualTo(value).mas_offset(offset) |
| xs_topGreaterThanOrEqualTo(value, offset?) | top.mas_greaterThanOrEqualTo(value).mas_offset(offset) |
| xs_rightGreaterThanOrEqualTo(value, offset?) | right.mas_greaterThanOrEqualTo(value).mas_offset(offset) |
| xs_bottomGreaterThanOrEqualTo(value, offset?) | bottom.mas_greaterThanOrEqualTo(value).mas_offset(offset) |
| xs_leadingGreaterThanOrEqualTo(value, offset?) | leading.mas_greaterThanOrEqualTo(value).mas_offset(offset) |
| xs_baselineGreaterThanOrEqualTo(value, offset?) | baseline.mas_greaterThanOrEqualTo(value).mas_offset(offset) |
| xs_centerXGreaterThanOrEqualTo(value, offset?) | centerX.mas_greaterThanOrEqualTo(value).mas_offset(offset) |
| xs_centerYGreaterThanOrEqualTo(value, offset?) | centerY.mas_greaterThanOrEqualTo(value).mas_offset(offset) |
| xs_centerGreaterThanOrEqualTo(value) | center.mas_greaterThanOrEqualTo(value) |
| xs_sizeGreaterThanOrEqualTo(value) | size.mas_greaterThanOrEqualTo(value) |
| xs_edgesGreaterThanOrEqualTo(value) | edges.mas_greaterThanOrEqualTo(value) |
| xs_widthGreaterThanOrEqualTo(value) | width.mas_greaterThanOrEqualTo(value) |
| xs_heightGreaterThanOrEqualTo(value) | height.mas_greaterThanOrEqualTo(value) |
| xs_leftLessThanOrEqualTo(value, offset?) | left.mas_LessThanOrEqualTo(value).mas_offset(offset) |
| xs_topLessThanOrEqualTo(value, offset?) | top.mas_LessThanOrEqualTo(value).mas_offset(offset) |
| xs_rightLessThanOrEqualTo(value, offset?) | right.mas_LessThanOrEqualTo(value).mas_offset(offset) |
| xs_bottomLessThanOrEqualTo(value, offset?) | bottom.mas_LessThanOrEqualTo(value).mas_offset(offset) |
| xs_leadingLessThanOrEqualTo(value, offset?) | leading.mas_LessThanOrEqualTo(value).mas_offset(offset) |
| xs_baselineLessThanOrEqualTo(value, offset?) | baseline.mas_LessThanOrEqualTo(value).mas_offset(offset) |
| xs_centerXLessThanOrEqualTo(value, offset?) | centerX.mas_LessThanOrEqualTo(value).mas_offset(offset) |
| xs_centerYLessThanOrEqualTo(value, offset?) | centerY.mas_LessThanOrEqualTo(value).mas_offset(offset) |
| xs_centerLessThanOrEqualTo(value) | center.mas_LessThanOrEqualTo(value) |
| xs_sizeLessThanOrEqualTo(value) | size.mas_LessThanOrEqualTo(value) |
| xs_edgesLessThanOrEqualTo(value) | edges.mas_LessThanOrEqualTo(value) |
| xs_widthLessThanOrEqualTo(value) | width.mas_LessThanOrEqualTo(value) |
| xs_heightLessThanOrEqualTo(value) | height.mas_LessThanOrEqualTo(value) |