美文网首页
Masonry等间隔或等宽高布局视图

Masonry等间隔或等宽高布局视图

作者: CoderHong | 来源:发表于2019-07-18 00:47 被阅读0次

视图水平或者垂直方向布局子空间
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);
}];
image.png

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);
}];
example.png

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

相关文章

网友评论

      本文标题:Masonry等间隔或等宽高布局视图

      本文链接:https://www.haomeiwen.com/subject/vkwhlctx.html