我有一个UITableView有很多行和很多节(超过500节)。拥有很多行并不是那么糟糕,因为只有可见的行是使用dequeueReusableCellWithIdentifier方法加载的。问题是,所有的section头加载每次我执行[tableView reloadData]。
是否有一种方法来使用脱队列节头相同的方式我使用它的行?
如果没有,我能想到的只有两个选项:
- 处理我自己的section头队列。
- 使节标题为自定义单元格并管理节单元格映射我自己。
这两个解决方案都非常复杂,因为我使用NSFetchedResultsController
如果您确定每次都加载所有的section头*,这意味着这是一个系统行为。
使用NSFetchedResultsController有什么复杂的?如果真的是,也许你应该写你自己的UITableViewDelegate/DataSource有更大的灵活性。
*。
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
或
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
在发送[tableView reloadData]消息时被调用X次
幸运的是,这个问题在iOS6中解决了:UITableView的dequeueReusableHeaderFooterViewWithIdentifier方法