操作步骤
1.设置tableHeaderView及其约束
- (DSProductDetailHeadView *)tableViewHeaderView{
if(!_tableViewHeaderView){
_tableViewHeaderView=[DSProductDetailHeadView new];
_tableViewHeaderView.backgroundColor=[UIColor whiteColor];
_tableViewHeaderView.delegate=self;
//1.将自定义的视图设为tableView的头部视图
self.contentTableView.tableHeaderView=_tableViewHeaderView;
//2.设置tableView头部视图的约束,只需设置top和width约束就可以了
[_tableViewHeaderView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.width.equalTo(self.contentTableView);
}];
}
return _tableViewHeaderView;
}
2.设置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.每次重新布局后,需要重新设置tableHeaderView的frame
#pragma mark - 网络请求
- (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赋值数据
weakself.tableViewHeaderView.productDetailModel=weakself.detailModel;
//重新设置tableHeaderView的frame
[weakself.contentTableView layoutIfNeeded];
weakself.contentTableView.tableHeaderView=weakself.tableViewHeaderView;
[weakself.contentTableView reloadData];
}
}];