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

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

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

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

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

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

【问题讨论】:

    标签: uitableview dynamic nsfetchedresultscontroller deque sectionheader


    【解决方案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 方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-03
      相关资源
      最近更新 更多