tableviewheaderview 高度自适应

Posted 佛系码农

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tableviewheaderview 高度自适应相关的知识,希望对你有一定的参考价值。

完全使用约束 使tableviewheaderview 的高度自适应,以后再也不用去计算headerview的高度后再去改变高度了,

demo代码:

#import "ViewController.h"
#import "Masonry.h"
@interface ViewController ()<UITableViewDelegate,UITableViewDataSource>

@end

@implementation ViewController

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return 10;
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    UITableViewCell *cell
    = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"cell"];
    cell.textLabel.text = [NSString stringWithFormat:@"------------%ld",indexPath.row];
    return cell;
}
- (void)viewDidLoad {
    [super viewDidLoad];
    UILabel *testlable = [[UILabel alloc]init];
    testlable.numberOfLines = 0;
    testlable.font = [UIFont systemFontOfSize:12];
    UIView *headerview = [[UIView alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 10)];
    [headerview addSubview:testlable];
    
    UITableView *tableview = [[UITableView alloc]init];
    tableview.delegate = self;
    tableview.dataSource = self;
    tableview.rowHeight = 50;
    [self.view addSubview:tableview];
    
    tableview.tableHeaderView = headerview;
    [testlable mas_makeConstraints:^(MASConstraintMaker *make) {
        make.edges.mas_equalTo(headerview);
    }];
    [headerview mas_makeConstraints:^(MASConstraintMaker *make) {
        make.width.mas_equalTo(self.view.frame.size.width);
    }];
    [tableview mas_makeConstraints:^(MASConstraintMaker *make) {
        make.edges.mas_equalTo(self.view);
    }];
    testlable.text = @"测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字===";
    [tableview layoutIfNeeded];
    tableview.tableHeaderView = headerview;
    NSLog(@"----------headerview_frame:%@-------testlable_frame:%@",NSStringFromCGRect(headerview.frame),NSStringFromCGRect(testlable.frame));
}
- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
@end

 

以上是关于tableviewheaderview 高度自适应的主要内容,如果未能解决你的问题,请参考以下文章

iOS 8 xib + AutoLayout 无法为 tableViewHeaderView 正常工作

iOS--CollectionView添加类似TableView的TableViewHeaderView 和 SectionHeader 的置顶悬停效果

如何将自动布局约束添加到 tableview headerView 内的多行 UILabel?

第十一篇UITableView headerview下拉放大

iOS 中的自定义搜索栏

更改 UITableView 中的搜索栏高度(swift 5)