3

IOS5 アプリでテーブル セルのジェスチャ認識エンジンをセットアップしました。

UITapGestureRecognizer* oneFingerDoubleTap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(cellOneFingerDoubleTap:)];
oneFingerDoubleTap.numberOfTapsRequired = 2;
[cell addGestureRecognizer:oneFingerDoubleTap];

そして実装されたハンドラメソッド:

- (void)cellOneFingerDoubleTap:(id) sender
{
    NSLog(@"taptap");
}

それは正常に動作します。私の問題は、タップされたセルまたはタップされたセルを含む他のデータを渡すことができないことです。私が見るように、(id)sender は UITapGestureRecognizer そのものです。

私の質問は: ハンドラー メソッド (cellOneFingerDoubleTap) でタップされたセルを取得するにはどうすればよいですか? タップされたセルのインデックスをハンドラー メソッドで取得するにはどうすればよいですか?

ありがとう!

4

2 に答える 2

9

viewメソッドで渡されたジェスチャレコグナイザーからを取得cellOneFingerDoubleTap:すると、タップされたセルが取得されます。何かのようなもの:

- (void)cellOneFingerDoubleTap:(UIGestureRecognizer*)recognizer {
    UITableViewCell *cell = (UITableViewCell*)recognizer.view;
}

[ちなみに、「セル」とは、あなたが意味するものだと思いますUITableViewCell]

于 2012-02-09T00:14:16.747 に答える
0

UIGestureRecognizerには

-(UIView *)view

アタッチされたビューを取得するために使用できるプロパティ。

レコグナイザーをUITableViewCellにアタッチしたので、レコグナイザーのビューをUITableViewのビューに渡します。

-indexPathForCell:
于 2012-02-09T00:15:10.587 に答える