UITableView使用UITableViewStylePlain样式。
UIView *view = [[UIView alloc] init];
view.backgroundColor = [UIColor redColor];
[view addSubview:self.customHeaderView];
[_customHeaderView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(view);
}];
_tableView.tableHeaderView = view;
__weak typeof(self) weakSelf = self;// 个人习惯
[view mas_remakeConstraints:^(MASConstraintMaker *make) {
make.top.width.equalTo(weakSelf.tableView);
}];
[_tableView layoutIfNeeded];
UITableView使用UITableViewStyleGrouped样式(使用的时候遇到了tableview的headerView与第一个分组之间有一块多余的空白,解决方法是设置一个固定的高度,若你也遇到了相同的问题,可以尝试一下)。
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, CGFLOAT_MIN)]; // 此处设置一个固定高度,解决有空白的问题
view.backgroundColor = [UIColor redColor];
[view addSubview:self.customHeaderView];
[_customHeaderView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(view);
}];
_tableView.tableHeaderView = view;
__weak typeof(self) weakSelf = self;
[view mas_remakeConstraints:^(MASConstraintMaker *make) {
make.top.width.equalTo(weakSelf.tableView);
make.height.equalTo(weakSelf.customHeaderView.mas_height).priorityHigh();
}];
[_tableView layoutIfNeeded];