tableView.tableHeaderView赋值后立即刷新

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tableView.tableHeaderView赋值后立即刷新相关的知识,希望对你有一定的参考价值。

参考技术A 我的tableHeaderView是xib写的,xib高度根据后台返回的数据动态变化。
第一次加载这个tabbleView时tableHeaderView总会显示的超高,比实际内容高,调用了

及时刷新

根据: https://www.jianshu.com/p/e876ccf668b4

将 Subview 添加到 self.tableView.tableHeaderView 不起作用

【中文标题】将 Subview 添加到 self.tableView.tableHeaderView 不起作用【英文标题】:Add Subview to self.tableView.tableHeaderView does not work 【发布时间】:2012-01-06 16:15:53 【问题描述】:

我有一个UITableViewController,我想扩展该表的tableHeaderView

所以在viewDidLoad 我添加了以下内容:

self.tableView.tableHeaderView = [[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, self.tableView.frame.size.width, 60.0f)];

很好,效果很好 - 我得到了我的标题视图。

现在我想在该视图的顶部添加一个按钮。所以我添加以下代码:

UIButton *someButton = [[UIButton alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 100.0f, 20.0f)];
[someButton setTitle:@"Filter" forState:UIControlStateNormal];

[self.tableView.tableHeaderView addSubview:someButton];

但该按钮不会出现在tableHeaderView 上。当我使用 UILabel 而不是 UIButton 运行相同的代码时,我可以看到标签。

我的错误在哪里?

【问题讨论】:

请注意:上述代码的第一行将导致非 ARC 应用程序发生泄漏。仅供复制和粘贴此代码的任何人参考。 【参考方案1】:

看看这个 SO 问题:UIButton - alloc initWithFrame: vs. buttonWithType:

我建议你使用UIButton *someButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 或类似的东西。

【讨论】:

以上是关于tableView.tableHeaderView赋值后立即刷新的主要内容,如果未能解决你的问题,请参考以下文章

tableView.tableHeaderView 已设置但未绘制

tableView.tableHeaderView赋值后立即刷新

如何调整一个UITableView的tableHeaderView

在 0,0,320,45 中从 tableview 修复表头?

IOS:隐藏/重新加载 tableView 标头

隐藏导航栏后面的 tableHeaderView