iOS 一个view 根据自身内容,自适应高度注意事项

一个自定义视图

#import "TableHederView.h"
#import <Masonry/Masonry.h>

@interface TableHederView ()

@end

@implementation TableHederView

- (void)refreshWithArray:(NSArray *)array
{
    UIView *view ;
    for (int i = 0; i < array.count; i ++) {
        NSString *title = array[i];
        UILabel *label = [[UILabel alloc] init];
        label.text = title;
        [self addSubview:label];
        if (i == 0) {
            [label mas_makeConstraints:^(MASConstraintMaker *make) {
                make.left.mas_equalTo(10);
                make.right.mas_equalTo(- 10);
                make.top.mas_equalTo(10);
            }];
        } else {
            
            if (i == array.count - 1) {
                [label mas_makeConstraints:^(MASConstraintMaker *make) {
                    make.left.mas_equalTo(10);
                    make.right.mas_equalTo(-10);
                    make.top.equalTo(view.mas_bottom).with.offset(10);
                    make.bottom.mas_equalTo(-10);
                }];
            } else {
                [label mas_makeConstraints:^(MASConstraintMaker *make) {
                    make.left.mas_equalTo(10);
                    make.right.mas_equalTo(-10);
                    make.top.equalTo(view.mas_bottom).with.offset(10);
                }];
            }
        }
        view = label;
        
    }
}

@end

现在想要根据展示的内容自适应高度,
错误的用法

    [super viewDidLoad];
    self.view.backgroundColor = [UIColor whiteColor];
    TableHederView *headerView = [[TableHederView alloc] initWithFrame:CGRectMake(0, 100, CGRectGetWidth(self.view.bounds), 0)];
    headerView.backgroundColor = [UIColor cyanColor];
    [self.view addSubview:headerView];
    self.array = @[@"upsaifaskdjf;askldjf;alksdjf;aklsjfasdlkfja;sdklfja;skdlfj;aksdjf;aksldjf;aklsjdf;aklsdjf;klasjdf;klajdsf;alksdfj",
                   @"e二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二额二二二二二二二二二二额二二二二二二二二",
                   @"三三三三是哪三是哪三年三三三三三是哪三三三是哪三三三三三三阿森纳三三三三三安萨是哪是哪是哪三年三三三三三三是哪三男撒三三三三三三",
                   @"丝丝丝丝丝丝丝丝丝丝上丝丝丝丝丝丝丝丝丝丝上丝丝丝丝丝丝丝丝丝丝上丝丝丝丝丝丝丝丝丝丝上丝丝丝丝丝丝丝丝丝丝上v丝丝丝丝丝丝丝丝丝丝上丝丝丝丝丝丝丝丝丝丝上"];
    [headerView refreshWithArray:self.array];

请添加图片描述

正确的用法, 使用 masonry 添加约束

- (void)viewDidLoad {
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor whiteColor];
    TableHederView *headerView = [[TableHederView alloc] init];
    headerView.backgroundColor = [UIColor cyanColor];
    [self.view addSubview:headerView];
    [headerView mas_makeConstraints:^(MASConstraintMaker *make) {
        make.left.right.mas_equalTo(0);
        make.top.mas_equalTo(100);
    }];
    self.array = @[@"upsaifaskdjf;askldjf;alksdjf;aklsjfasdlkfja;sdklfja;skdlfj;aksdjf;aksldjf;aklsjdf;aklsdjf;klasjdf;klajdsf;alksdfj",
                   @"e二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二额二二二二二二二二二二额二二二二二二二二",
                   @"三三三三是哪三是哪三年三三三三三是哪三三三是哪三三三三三三阿森纳三三三三三安萨是哪是哪是哪三年三三三三三三是哪三男撒三三三三三三",
                   @"丝丝丝丝丝丝丝丝丝丝上丝丝丝丝丝丝丝丝丝丝上丝丝丝丝丝丝丝丝丝丝上丝丝丝丝丝丝丝丝丝丝上丝丝丝丝丝丝丝丝丝丝上v丝丝丝丝丝丝丝丝丝丝上丝丝丝丝丝丝丝丝丝丝上"];
    [headerView refreshWithArray:self.array];
}

效果图
请添加图片描述

需要注意,如果我们想要某个view自适应高度,并且该view内部是通过masonry 撑起来高度的,那么该view 也要使用masonry 添加约束,才能自适应高度

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值