我有一个UITableView,有很多行和很多部分(超过500个部分)。 拥有大量行并不是很糟糕,因为只使用dequeueReusableCellWithIdentifier方法加载可见行。 问题是每次执行[tableView reloadData]时都会加载所有节头。
有没有办法使用出列的节标题,就像我将它用于行一样?
如果没有,我能想到的唯一两个选择是:
两种解决方案都非常复杂,因为我使用的是NSFetchedResultsController。
答案 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方法。