首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在UITableView中设置表头高度?

如何在UITableView中设置表头高度?
EN

Stack Overflow用户
提问于 2011-04-07 20:36:59
回答 16查看 123.3K关注 0票数 79

我已经阅读了苹果文档中关于UITableView类和委托引用的内容,但是找不到显式设置表头高度的方法。

我使用以下委托设置表格单元格高度:

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

并使用以下委托设置节页眉/页脚高度。

-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
-(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section

谁能帮我设置表头/表尾的高度?

谢谢。

EN

回答 16

Stack Overflow用户

回答已采纳

发布于 2011-04-07 20:40:19

只需设置tableHeaderView的frame属性。

票数 67
EN

Stack Overflow用户

发布于 2012-09-28 18:11:46

我找到了一个很棒的黑客。修改框架属性后添加以下行

self.tableView.tableHeaderView = self.tableView.tableHeaderView;

诀窍在于(我认为)当您将视图分配给tableHeaderView属性时,UITableView缓存了高度(实际上是帧)。上面这行代码只是再次指定了高度。

票数 62
EN

Stack Overflow用户

发布于 2016-01-05 18:46:07

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()
    sizeHeaderToFit()
}

private func sizeHeaderToFit() {
    let headerView = tableView.tableHeaderView!

    headerView.setNeedsLayout()
    headerView.layoutIfNeeded()

    let height = headerView.systemLayoutSizeFitting(UILayoutFittingCompressedSize).height
    var frame = headerView.frame
    frame.size.height = height
    headerView.frame = frame

    tableView.tableHeaderView = headerView
}

更多详情请访问:here

票数 40
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5581116

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档