1.代碼方式測試
//測試代碼 @interface ViewController ()<UITableViewDataSource> @property (weak, nonatomic) IBOutlet UITableView *tableView; @property (strong, nonatomic) UILabel *headerLable; @property (strong, nonatomic) UIView *headerView; @end
//Auto Layout可以計算出正確的界面的必要條件是約束充分
self.headerLable = [UILabel new]; self.headerLable.numberOfLines = 0; self.headerView = [UIView new]; [self.headerView addSubview:self.headerLable]; [self.headerLable mas_makeConstraints:^(MASConstraintMaker *make) { make.edges.mas_equalTo(self.headerView).valueOffset([NSValue valueWithUIEdgeInsets:UIEdgeInsetsMake(10, 10, 10, 10)]); }]; self.tableView.tableHeaderView = self.headerView; [self.headerView mas_makeConstraints:^(MASConstraintMaker *make) { make.width.mas_equalTo(self.view.mas_width); }]; self.headerLable.text = @"測試文本測試文本測試文本測試文本測試文本測試文本測試文本測試文本測試文本測試文本";
[self.tableView.tableHeaderView layoutIfNeeded]; self.tableView.tableHeaderView = self.headerView;
⚠ 1.修改tableView的tableHeaderView界面時,界面並不能及時刷新,可手動調用layoutIfNeeded 此時view高度爲理想高度atom
2.tableViewHeader高度變化時,界面也不能及時刷新 須要從新將headerView設置爲tableView的tableHeaderView,界面便可正確顯示了spa
3.固然,使用auto layout時,約束條件必須充分 才能計算出正確高度哦^^code