Masonry自适应高度

iOS技术成长之路

Posted by DM on January 18, 2020

项目里经常会需要根据子视图的高度自动改变父视图的高度。

简单举个例子,绿色区域作为父视图,红色区域添加在绿色区域上。 现在让绿色区域的高度跟着红色区域的高度来自动改变。 </img>

代码如下

	UIView *view = [[UIView alloc]init];
    view.backgroundColor = UIColor.greenColor;
    [self.view addSubview:view];
    contentView *content =[[contentView alloc]init];
    content.backgroundColor = UIColor.redColor;
    [view addSubview:content];
    
    [view mas_makeConstraints:^(MASConstraintMaker *make) {
        make.left.top.equalTo(@100);
        make.right.equalTo(@-100);
    }];
    float contentHeight = [content setHeight];
    [content mas_makeConstraints:^(MASConstraintMaker *make) {
        make.left.top.equalTo(@50);
        make.right.equalTo(@-100);
        make.height.mas_equalTo(contentHeight);
        make.bottom.equalTo(view.mas_bottom).mas_offset(@-10);
    }];

思路:绿色区域view不设置高度。红色区域 设置高度,并设置底部距离view的底间距

	  make.bottom.equalTo(view.mas_bottom).mas_offset(@-10);