不同手机屏幕上他的headerView的实际高度是不同的,需要自适应高度,直接在viewDidLoad方法内给出高度,会出现问题,但是每次[tableView reload]就会正常.
// 1. 在ViewDidLoad内写代码逻辑
ChoseAgentSignUpView *agentView = [[[NSBundle mainBundle]loadNibNamed:@"ChoseAgentSignUpView" owner:self options:nil]lastObject];
// agentView.frame = CGRectMake(0, 0, ScreenWidth, agentView.height);可以去掉
self.agentView = agentView;
[self.mainTableView setTableHeaderView:agentView];
// 2. 在viewDidLayoutSubviews内重新布局
- (void)viewDidLayoutSubviews
{
[super viewDidLayoutSubviews];
// [self setupUI1];
//利用systemLayoutSizeFittingSize:计算出真实高度
CGFloat height = [self.mainTableView.tableHeaderView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height;
CGRect headerFrame = self.mainTableView.tableHeaderView.frame;
headerFrame.size.height = height + 20;
//修改tableHeaderView的frame
self.mainTableView.tableHeaderView.frame = headerFrame;
}