0

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollViewが&と呼ばれるときにUITableViewで指のタッチの数を判断しようとしています。私がこれまで試してみましたスクロールしているタッチの数を判断する方法UITableView

2つのアプローチがある:

  1. サブクラスのUITableViewはtouchesBegan:withEvent:上書きする - このメソッドは、唯一の画面で「いくつかの」タップがあるときに発生するされていることを この方法の問題点を、ユーザーが指を休まずにすばやくスクロールするときではありません。
  2. uipangesturerecognizerを使用してタッチ数を検出します。 - 私は次のようにそれを使用しています:私は、このアプローチでタッチの数を取得することができていますが、問題があるが、

UIPanGestureRecognizer *taps = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)]; 
taps.maximumNumberOfTouches=4; 
taps.minimumNumberOfTouches=1; 
[self.tableView addGestureRecognizer:taps]; 

そして

-(void)handleTap:(UITapGestureRecognizer *)sender{ 
    if (sender.state == UIGestureRecognizerStateBegan) { 
     NSLog(@"BEGAN - %d",sender.numberOfTouches); 
    } 
} 

実際のスクロールをオーバーライドしていることを示します(通常のスクロールは発生していません)。

私はどこが間違っているのか、それ以外のことをお勧めします。 ありがとう!

答えて

1

UIGestureRecognizerのメソッド - (NSUInteger)numberOfTouchesは、それに触れる回数を教えてくれます。

+0

このような単純な回避策のために、それは動作しますが、これを使用することができます。しかし、これを介して、 'scrollViewWillBeginDragging'に触れることしかできません。 'viewDidScroll'でゼロにリセットされます。指が離されたときにタッチを特別に数えることが可能であれば完璧です! – BufferStack

+1

同じ問題があります。 - (BOOL)gestureRecognizer:(UIPanGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touchメソッドのタッチ数を調べようとしています。それは常にここで0を返します:( –

関連する問題