美文网首页
tableHeaderView使用Masonry自动计算高度

tableHeaderView使用Masonry自动计算高度

作者: happycolt | 来源:发表于2018-07-12 18:10 被阅读259次

    操作步骤

    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];
            }
        }];
    

    相关文章

      网友评论

          本文标题:tableHeaderView使用Masonry自动计算高度

          本文链接:https://www.haomeiwen.com/subject/iyirpftx.html