如何确定滚动UITableView的触摸次数

时间:2011-12-14 06:56:06

标签: iphone ios uiscrollview uigesturerecognizer uipangesturerecognizer

我正在尝试在调用- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView时确定UITableView上的手指触摸次数。相应地执行一些任务。

到目前为止,我尝试过的两种方法是:

  1. 对UITableView进行子类化以覆盖touchesBegan:withEvent: - 这种方法的问题在于,只有当屏幕上有“一些”点击时才会触发此方法,而不是当用户只是快速滚动而不放松手指时。
  2. 使用uipangesturerecognizer检测触摸次数。 - 我以下列方式使用它:

  3. 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 个答案:

答案 0 :(得分:1)

UIGestureRecognizer的方法 - (NSUInteger)numberOfTouches可以告诉你它有多少触摸。