UITableView- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView
が呼び出されたときに指で触れた回数を特定し、それに応じていくつかのタスクを実行しようとしています。
これまでに試した2つのアプローチは次のとおりです。
- オーバーライドする UITableView のサブクラス
touchesBegan:withEvent:
化 - このアプローチの問題は、ユーザーが指を休めずにすばやくスクロールしたときではなく、画面に「何らかの」タップがあるときにのみこのメソッドが起動されることです。 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);
}
}
このアプローチでタッチ数を取得することはできますが、問題は実際のスクロールを無効にしていることです (通常のスクロールは行われません)。
どこが間違っているか、他に何をすべきかを提案してください。ありがとう!