UITableViewCell选择在重新加载时闪烁

时间:2015-05-15 02:20:24

标签: ios objective-c uitableview

我有一个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];
}

0 个答案:

没有答案