1

NSIndexPathジェスチャレコグナイザーセレクターでの受信に問題があります。ジェスチャレコグUITableViewController:viewDidLoadナイザーを初期化する場合

UISwipeGestureRecognizer* rightSwipeGestureRecognizer = 
        [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeRight:)];
rightSwipeGestureRecognizer.direction = UISwipeGestureRecognizerDirectionRight;
[self.tableView addGestureRecognizer:rightSwipeGestureRecognizer];

行インデックスを取得しようとしているジェスチャハンドラーimで:

- (void) swipeRight: (UISwipeGestureRecognizer *)gestureRecognizer
{
if (gestureRecognizer.state == UIGestureRecognizerStateEnded) {
    CGPoint swipeLocation = [gestureRecognizer locationInView:self.tableView];
    NSIndexPath *swipedIndexPath = [self.tableView indexPathForRowAtPoint:swipeLocation];
    NSInteger row = swipedIndexPath.row;
    NSLog(@"Row %d", swipedIndexPath.row);
}

CGPointは正しいですが、行は常に0です。理由は何ですか?

4

1 に答える 1

0

UISwipeGestureRecognizerを各UITableViewCellに追加します(同じセレクターを使用)。次に、セレクターが呼び出されると、次の方法でセルを取得できますsender.view

于 2012-12-09T00:59:49.883 に答える