2

セルの画像のタップを検出するカスタム メソッドがあります。また、画像の相関セルのインデックス パスを見つけて、関数内で使用したいと考えています。これが私が使用しているものです:

CellforRowAtIndexPath:

UITapGestureRecognizer *tapped = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(cellImageTapped:)];
tapped.numberOfTapsRequired = 1;
[cell.imageView addGestureRecognizer:tapped];

メソッドは次のインデックスパスを取得しようとしています:

  -(void)cellImageTapped:(id)sender {
   if(videoArray.count > 0){
       Video *currentVideo = [videoArray objectAtIndex:INDEX_PATH_OF_CELL_IMAGE];
     //do some stuff          
  }
}

インデックス パスを渡す方法がわかりません。何か案は?

4

5 に答える 5

5

簡単な方法:

  • タッチポイントを取得する

  • 次に、ポイントのセルのインデックス パスを取得します

コードは次のとおりです。

-(void)cellImageTapped:(id)sender {
    UITapGestureRecognizer *tap = (UITapGestureRecognizer *)sender;
    CGPoint point = [tap locationInView:theTableView];

    NSIndexPath *theIndexPath = [theTableView indexPathForRowAtPoint:point];

    if(videoArray.count > 0){
        Video *currentVideo = [videoArray objectAtIndex:theIndexPath];
        //do some stuff
    }
}
于 2013-10-18T03:21:09.623 に答える
1

送信者のビューのタグを使用することになりました。答えを見つけるのに1時間を無駄にしたので、これが誰かの助けになることを願っています。

-(void)cellImageTapped:(id)sender {

UITapGestureRecognizer *gesture = (UITapGestureRecognizer *) sender;

            if(videoArray.count > 0){
                NSInteger datIndex = gesture.view.tag;
                Video *currentVideo = [videoArray objectAtIndex:datIndex];
            }

}
于 2013-10-18T01:26:09.360 に答える