我有一些奇怪但只有轻微烦人的行为UITableView
不在UITableViewController
内。这是非常基础的,并且都采用了所需的最小方法。在IB中,它设置为允许单选,显示触摸选择等。
以下操作序列允许您“突出显示”任意数量的行:
现在,您将突出显示两行,此过程可以重复,直到选中所有行。
为什么这可能/我错过了什么?解除删除选项后,不会调用didDeselectRowAtIndexPath。 :/
答案 0 :(得分:0)
好的,快速阅读所有文档让我得到答案。虽然滑动删除并不是明显地取消选择我的行(由于tableView:didSelectRowAtIndexPath:
中的代码应用我想要的突出显示并且tableView:didDeselectRowAtIndexPath:
中的代码将其删除),但是通过将nil指定为nil将其从选定的行中删除indexPathForSelectedRow
。这是因为,如文档中所述,当表处于编辑模式时,不会发送这些调用,我只能假设整个表在滑动到删除期间。
看到该行实际上被取消选中,我需要做的就是删除我的自定义突出显示,所以我这样做了:
- (void)tableView:(UITableView *)tableView
willBeginEditingRowAtIndexPath:(NSIndexPath *)indexPath {
NSIndexPath *selectedIndex = self.cardsTable.indexPathForSelectedRow;
if (selectedIndex != nil) {
[self tableView:self.cardsTable didDeselectRowAtIndexPath:selectedIndex];
}
}
所以我猜我的自定义表突出显示有点hackish。