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

时间:2011-09-18 08:16:39

标签: uitableview dynamic nsfetchedresultscontroller deque sectionheader

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

有没有办法使用出列的节标题,就像我将它用于行一样?

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

  1. 处理我自己的节头队列。
  2. 将节标题设为自定义单元格并管理我自己的节 - 单元格映射。
  3. 两种解决方案都非常复杂,因为我使用的是NSFetchedResultsController。

2 个答案:

答案 0 :(得分:0)

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

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

*即。该

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

 - (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
发送[tableView reloadData]消息时,

被调用X次。

答案 1 :(得分:0)

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