如何像加载单元格一样动态加载节标题

Posted

技术标签:

【中文标题】如何像加载单元格一样动态加载节标题【英文标题】:How to load section header dynamically like cells are loaded 【发布时间】:2011-09-18 08:16:39 【问题描述】:

我有一个 UITableView 有很多行和很多部分(超过 500 个部分)。 拥有很多行并不是那么糟糕,因为只有可见行是使用 dequeueReusableCellWithIdentifier 方法加载的。 问题是每次我执行 [tableView reloadData] 时都会加载所有节标题。

有没有办法像使用行一样使用出队的节标题?

如果没有,我能想到的唯一两个选择是:

    我自己处理节标题队列。 将节标题设置为自定义单元格,并自行管理节单元格映射。

这两种解决方案都非常复杂,因为我使用的是 NSFetchedResultsController。

【问题讨论】:

【参考方案1】:

如果您确定每次都加载所有节标题*,则表示这是系统行为。

使用 NSFetchedResultsController 有什么复杂的?如果确实如此,也许您应该编写自己的 UITableViewDelegate/DataSource 以获得更大的灵活性。

*即那个

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

 - (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section

在您发送 [tableView reloadData] 消息时被调用 X 次。

【讨论】:

这并不能真正回答我的问题。这种“系统行为”正是我需要解决的。我只想加载可见的部分,viewForHeaderInSection 将所有部分一起加载。【参考方案2】:

幸运的是我的接受率 - 这个问题在 ios6 中得到了解决: UITableView 的 dequeueReusableHeaderFooterViewWithIdentifier 方法。

【讨论】:

以上是关于如何像加载单元格一样动态加载节标题的主要内容,如果未能解决你的问题,请参考以下文章

表格视图单元格高度动态 + 从 .xib 加载

从服务器加载图像时的动态单元格

如何在另一个单元格的视图中加载一个单元格。?

以编程方式加载自定义子视图,就像它们是单元格一样?

iOS动态地将新单元格加载到表格视图的底部

具有调整单元格动画大小的动态单元格大小