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