1

我在处理长按表格时取消选择表格中当前选定单元格的情况时遇到问题。

复制:

  1. 有一个包含多个单元格的 UITableView
  2. 点击一个单元格以选择它(应该变成蓝色或遵循其选择样式)
  3. 长按另一个单元格

结果:当前选定的单元格取消选择,但不会触发 UITableViewDelegate 方法didDeselectRowAtIndexPathdidUnhighlightRowAtIndexPath.

预期结果:应该有某种回调,以便我可以处理这种情况。

发生这种情况时,选定的表格单元格确实会收到一条setSelected:NO animated:NO消息,但这不足以跟踪表格本身的状态。还有其他我不知道的回调吗?我错过了什么吗?

我曾尝试使用UILongPressGestureRecognizer, 但这似乎以一种不受欢迎的方式从表视图中窃取事件处理。

这目前发生在 iOS 6.0 设备上,我们的应用程序支持低至 4.3 版本。

4

1 回答 1

0

如果新选择的行确实触发了 didSelectRowAtIndexPath: 方法,您可以尝试实现几个标志来确定当前选择的行和先前选择的行,因此当 didSelectRowAtIndexPath 触发时,您可以验证 currentSelectedRow(现在是旧的)与didSelectRowAtIndexPath: 报告它的 NSIndexPath 参数,如果是这样,您可以处理对先前选择的行的操作。

希望这可以给你一些见解。

于 2013-01-24T06:12:03.287 回答