视图水平或者垂直方向布局子空间
1.视图尺寸自适应,视图之间边距固定
2.视图尺寸固定,视图之间边距自适应
对于上述两种需求,Masonry
给系统NSArray
增加分类View+MASAdditions
扩充API
- (void)mas_distributeViewsAlongAxis:(MASAxisType)axisType withFixedSpacing:(CGFloat)fixedSpacing leadSpacing:(CGFloat)leadSpacing tailSpacing:(CGFloat)tailSpacing;
- (void)mas_distributeViewsAlongAxis:(MASAxisType)axisType withFixedItemLength:(CGFloat)fixedItemLength leadSpacing:(CGFloat)leadSpacing tailSpacing:(CGFloat)tailSpacing;
示例
1、创建视图添加到父视图上,同时将视图添加到数组中
UIView *view1 = [[UIView alloc] init];
view1.backgroundColor = [UIColor redColor];
UIView *view2 = [[UIView alloc] init];
view2.backgroundColor = [UIColor blueColor];
UIView *view3 = [[UIView alloc] init];
view3.backgroundColor = [UIColor greenColor];
[self.view addSubview:view1];
[self.view addSubview:view2];
[self.view addSubview:view3];
NSArray *views = @[view1, view2, view3];
2.1、水平方向 视图间距固定 宽度自适应
[views mas_distributeViewsAlongAxis:MASAxisTypeHorizontal withFixedSpacing:20 leadSpacing:10 tailSpacing:10];
[views mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(@200.0f);
make.height.equalTo(@100.0f);
}];

2.2、垂直方向 视图间距固定 宽度自适应
[views mas_distributeViewsAlongAxis:MASAxisTypeVertical withFixedSpacing:50 leadSpacing:200 tailSpacing:50];
[views mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.equalTo(self.view);
make.width.equalTo(@100.0f);
}];

需要注意的是: 横排的时候要相应设置控件数组的垂直约束,竖排的时候要相应设置控件数字的水平约束。
网友评论