我有一个UITableView
我已经连接到NSFetchedResultsController
。更新对象时,我使用reloadRowsAtIndexPaths
重新加载单元格。我想在重新加载时保持选中单元格。下面的代码是我在更新后重新选择单元格的方式。它可以工作,但单元格显示未选中大约半秒钟,然后再次被选中并且看起来很糟糕。 self.selectedIndexPath
中设置了didSelectRowAtIndexPath
。
我也尝试将单元格设置为选中并在cellForRowAtIndexPath
中突出显示,但这没有做任何事情。
有谁知道如何防止闪烁?我正在使用iOS 8.3 BTW。
// Called in controllerWillChangeContent
[self.tableView beginUpdates];
...
// Called in didChangeObject
[self.tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationNone];
...
// Called in controllerDidChangeContent
[self.tableView endUpdates];
if( self.selectedIndexPath ) {
[self.tableView selectRowAtIndexPath:self.selectedIndexPath animated:NO scrollPosition:UITableViewScrollPositionNone];
}