UIGestureRecognizer单击的奇怪行为

时间:2013-12-18 13:02:34

标签: ios iphone ipad uigesturerecognizer

我希望能够检测到双倍,并且当手指触摸图层时也是如此。它不是单击,因为要发生敲击,手指必须触摸并离开屏幕。我想检测一个或多个手指触摸视图的确切时刻。

这是我的代码:

    doubleTap = [[UITapGestureRecognizer alloc]
                  initWithTarget:self 
                  action:@selector(handleDoubleTap:)];
    [doubleTap setCancelsTouchesInView:NO];
    [doubleTap setNumberOfTapsRequired:2];
    [doubleTap setDelegate:self];
    [self.view addGestureRecognizer:doubleTap];


    singleTap = [[UITapGestureRecognizer alloc]
                 initWithTarget:self
                 action:@selector(handleSingleTap:)];
    [singleTap setCancelsTouchesInView:NO];
    [singleTap setNumberOfTapsRequired:1];
    [singleTap setNumberOfTouchesRequired:1];
    [singleTap requireGestureRecognizerToFail: doubleTap];
    [singleTap setDelegate:self];
    [self.view addGestureRecognizer:singleTap];

这就是我处理单击的方式

- (void)handleSingleTap:(UITapGestureRecognizer *)recognizer {

    if(recognizer.state == UIGestureRecognizerStateBegan) {
        [self doSomething];
    }
}

这个代码只是在手指离开时触发handleSingleTap方法,因此状态总是存在UIGestureRecognizerStateEnd。

如果一个或多个手指触摸视图但手指仍在那里,我该如何触发?

感谢。

1 个答案:

答案 0 :(得分:1)

使用long Press手势识别器,minimumPressDuration = 0.001。