0

我试图确定调用- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView时手指触摸的次数&相应地执行一些任务。我迄今试图如何确定滚动触摸的次数UITableView

有两种方法:

  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

是的.. thx这样一个简单的解决方法..它的工作原理和我可以使用它...但通过这个我只能够数``scrollViewWillBeginDragging`触摸。它在`viewDidScroll`上重置为零。如果在手指抬起时可以专门计算触摸,这将是完美的! – BufferStack 2011-12-14 09:43:15