iOS 动态headView高度的设置

一、源起

今天有个朋友问我,怎么动态给tableView的headerView设置高度。我看到这个需求之后,脑海一下子就想起了之前做过的那个社交电商的项目。当时是从帖子列表点击进入详情,详情页面上部分是该帖子的内容:包含是否存在图片,以及发布的文字多少,这里肯定是涉及到了headView的动态高度显示。我当时好像做了之后,还是有或多或少的 高度计算有点大(比实际要展示的大。底部流出空白)

文字输入有点多了,先假装要放代码

对了,当时是用的frame 做的headView高度 比如这样

-(XHListHeaderView *)headerView {
    if (!_headerView) {
        _headerView =[[XHListHeaderView alloc] initWithFrame:CGRectMake(0,0,kScreenWidth,X) andListType:PageListPrivate];
        _headerView.delegete = self;
    }
    return _headerView;
}
这个X 可以是0  最终的高度是要经过接口数据处理 布局之后的高度

下面是网络请求。。

只说success的回调
重新布局计算。拿到了高度 frameH...../..

重新给tableView 设置frame 

CGRect newFrame = self.headerView.frame;
newFrame.size.height = frameH
self.headerView.frame = great .........  这里在设置下 注意高度
[self.tableView beginUpdates];
[self.tableView setTableHeaderView: viewHeader];
[self.tableView endUpdates];

注意点。

1.需要注意的是 拿到计算后的高度之后要执行
[self.tableView beginUpdates];

[self.tableView endUpdates];

2.tableView在懒加载的时候先设置上headView。。。。
self.tableView.tableHeaderView = self.headerView;
这样 update效果更好

你可能感兴趣的:(iOS 动态headView高度的设置)