为什么beginUpdates / endUpdates重置tableView位置以及如何阻止它这样做?

时间:2011-08-13 00:56:48

标签: iphone ios uitableview nsfetchedresultscontroller

我在UITableView和

中使用NSFetchedResultsController
- (void)controllerWillChangeContent:(NSFetchedResultsController *)controller
and 
- (void)controllerDidChangeContent:(NSFetchedResultsController *)controller

我打电话给每个苹果文档的beginUpdates / endUpdates。问题是,每次进行此调用时,它都会将表位置重置为顶部。任何想法为什么它这样做,如果有办法避免表位置重置?

thx

2 个答案:

答案 0 :(得分:0)

您不能只调用[myTableView reloadData];而不是beginUpdates / endUpdates吗?也许有些东西我没有得到......

答案 1 :(得分:0)

您可以保存当前行的indexPath,例如

NSIndexPath *pastIP=[NSIndexPath indexPathForRow:0 inSection:0]

并在更新后

[tableView selectRowAtIndexPath:pastIP animated:YES scrollPosition:UITableViewScrollPositionTop];