如何像加载单元格一样动态加载节标题
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 方法。
【讨论】:
以上是关于如何像加载单元格一样动态加载节标题的主要内容,如果未能解决你的问题,请参考以下文章