1

テーブルを長押しすると、テーブルで現在選択されているセルの選択が解除される場合の処理​​に問題があります。

再現:

  1. 複数のセルを持つUITableViewがあります
  2. セルをタップして選択します(青色に変わるか、選択スタイルに従う必要があります)
  3. 別のセルを長押しします

didDeselectRowAtIndexPath結果:現在選択されているセルの選択が解除されますが、UITableViewDelegateメソッドまたははトリガーされませんdidUnhighlightRowAtIndexPath

期待される結果:このケースを処理できるように、何らかのコールバックが必要です。

選択したテーブルセルはsetSelected:NO animated:NO、これが発生したときにメッセージを受信しますが、テーブル自体の状態を追跡するには十分ではありません。私が知らない他のコールバックはありますか?私は何かが足りないのですか?

を使用してみましたUILongPressGestureRecognizerが、それは望ましくない方法でテーブルビューからイベント処理を盗むようです。

これは現在iOS6.0デバイスで発生しており、アプリはバージョン4.3までサポートしています。

4

1 に答える 1

0

新しく選択された行がdidSelectRowAtIndexPath:メソッドをトリガーする場合、現在選択されている行と以前に選択された行を判別するためにいくつかのフラグを実装して、didSelectRowAtIndexPathがトリガーされたときに、currentlySelectedRow(現在は古い行)がdidSelectRowAtIndexPath:はNSIndexPathパラメーターについて報告します。その場合、以前に選択した行に対するアクションを処理できます。

これがあなたにいくつかの洞察を与えることができることを願っています。

于 2013-01-24T06:12:03.287 に答える