好的,快速阅读所有文档让我找到了答案。尽管滑动删除并没有明显地取消选择我的行(由于代码tableView:didSelectRowAtIndexPath:
应用我想要的突出显示并tableView:didDeselectRowAtIndexPath:
删除它的代码),但它通过将 nil 分配给indexPathForSelectedRow
. 这是因为,如文档中所述,当表格处于编辑模式时不会发送这些调用,我只能假设整个表格在滑动删除期间。看到该行实际上被取消选择,我需要做的就是删除我的自定义突出显示,所以我这样做了:
- (void)tableView:(UITableView *)tableView
willBeginEditingRowAtIndexPath:(NSIndexPath *)indexPath {
NSIndexPath *selectedIndex = self.cardsTable.indexPathForSelectedRow;
if (selectedIndex != nil) {
[self tableView:self.cardsTable didDeselectRowAtIndexPath:selectedIndex];
}
}
所以我想我的自定义表格突出显示有点骇人听闻。