我希望能够检测到双倍,并且当手指触摸图层时也是如此。它不是单击,因为要发生敲击,手指必须触摸并离开屏幕。我想检测一个或多个手指触摸视图的确切时刻。
这是我的代码:
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。
如果一个或多个手指触摸视图但手指仍在那里,我该如何触发?
感谢。
答案 0 :(得分:1)
使用long Press手势识别器,minimumPressDuration = 0.001。