实现:
- 使用masonry对header的宽度进行约束
- 调用header的layoutIfNeeded
- 通过调用header的systemLayoutSizeFittingSize方法获取header的高度
- 设置header的frame
注意:
需要先调用layoutIfNeeded并再次对header的frame进行设置
代码:
self.tableView.tableHeaderView = self.tableHeaderView;
[self.tableHeaderView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.equalTo(self.view);
}];
[self.tableHeaderView layoutIfNeeded];
CGFloat height = [self.tableHeaderView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height;
CGRect frame = CGRectMake(0, 0, 0, height);
self.tableHeaderView.frame = frame;