viewForHeaderInSection 没有在 reloadData 上被调用

Posted

技术标签:

【中文标题】viewForHeaderInSection 没有在 reloadData 上被调用【英文标题】:viewForHeaderInSection not getting called on reloadData 【发布时间】:2018-09-27 08:03:24 【问题描述】:

。加载视图时如何第一次调用它。很奇怪。有什么帮助吗?我已经实现了以下委托方法。

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
    return 1;


-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
    return 0;


-(CGFloat)tableView:(UITableView *)tableView estimatedHeightForHeaderInSection:(NSInteger)section

    return 1500.0f;


- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section 
    return  UITableViewAutomaticDimension;


-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section 

【问题讨论】:

tableView outlet、delegate和datasource也正确连接。 使用该代码编辑您的问题并对其进行格式化以及附加信息。它在 cmets 中不是真正可读的,并且在它是重要信息时可能会被遗漏。 我已经编辑了问题,请检查。 请显示此代码的更多上下文。 对我来说工作正常,也许问题出在你代码的其他部分。 【参考方案1】:

您的heightForHeaderInSection 可能会返回0,因为UITableViewAutomaticDimension 不起作用。为了使UITableViewAutomaticDimension 工作,您必须设置所有相对于单元格容器视图的左侧、右侧、底部和顶部约束。

【讨论】:

我无法返回 10。占用是根据约束计算的。所以我必须返回 UITableViewAutomaticDimension。 好的,这种情况下你需要实现self.tableView.estimatedSectionHeaderHeight***.com/a/29763200/1155354 那为什么在第一次加载视图时它可以工作,而当我显式调用reloadData时它却不工作?

以上是关于viewForHeaderInSection 没有在 reloadData 上被调用的主要内容,如果未能解决你的问题,请参考以下文章

ViewForHeaderInSection 中的两个标题

viewForHeaderInSection 宽度不正确

viewForHeaderInSection 自动布局 - 引脚宽度

如何旋转 viewForHeaderInSection

viewForHeaderInSection 对齐错误(Swift 3)

tableView:viewForHeaderInSection: 如何准确工作以及如何动态自定义此视图