操作步驟
1.設(shè)置tableHeaderView及其約束
- (DSProductDetailHeadView *)tableViewHeaderView{
if(!_tableViewHeaderView){
_tableViewHeaderView=[DSProductDetailHeadView new];
_tableViewHeaderView.backgroundColor=[UIColor whiteColor];
_tableViewHeaderView.delegate=self;
//1.將自定義的視圖設(shè)為tableView的頭部視圖
self.contentTableView.tableHeaderView=_tableViewHeaderView;
//2.設(shè)置tableView頭部視圖的約束,只需設(shè)置top和width約束就可以了
[_tableViewHeaderView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.width.equalTo(self.contentTableView);
}];
}
return _tableViewHeaderView;
}
2.設(shè)置tableHeaderView最底部子視圖的約束
UIView *couponView=[UIView new];
couponView.backgroundColor=[UIColor cellMarginColor];
[self addSubview:couponView];
[couponView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(couponPriceTitleLabel.mas_bottom).offset(kCommonMaxMargin);
make.left.right.equalTo(self);
make.height.mas_equalTo(kScreenWidth*0.25);
//讓最底部子視圖的底部等于tableHeaderView的底部
make.bottom.equalTo(self);
}];
3.每次重新布局后缠犀,需要重新設(shè)置tableHeaderView的frame
#pragma mark - 網(wǎng)絡(luò)請求
- (void)networking{
WeakObj(self);
//商品詳情
[DSProductDetailNetworkModule getProductDetailDataWithProductId:self.productId channelId:self.channelId SuccessBlock:^(NSURLSessionDataTask * _Nullable task, SPNetResponseModel * _Nullable responseModel) {
if(IsSuccess(responseModel.code)){
weakself.detailModel=[DSProductDetailModel mj_objectWithKeyValues:responseModel.data];
//給tableHeaderView賦值數(shù)據(jù)
weakself.tableViewHeaderView.productDetailModel=weakself.detailModel;
//重新設(shè)置tableHeaderView的frame
[weakself.contentTableView layoutIfNeeded];
weakself.contentTableView.tableHeaderView=weakself.tableViewHeaderView;
[weakself.contentTableView reloadData];
}
}];