0

目标:我喜欢检测用户用来点击屏幕的手指数量。iOS TapGestureRecognizer - 多次触摸执行

可能的解决方案:使用UITapGestureRecognizer。我想只使用一个识别器,并在其调用的方法内使用recognizer.numberOfTouches检查触摸的数量。然而,它numberOfTouchesRequired似乎是一个严格等于限定符,而不是大于或等于限定符。即如果我将numberOfTouchesRequired设置为1,则我的UITapGestureRecognizer不响应2指敲击。因此,我必须创建5个不同的UITapGestureRecognizers,每个都有不同的numberOfTouchesRequired(1,2,3,4和5)。

这是最佳解决方案吗?对我来说感觉很不舒服。

回答

0

您可以尝试对UIGestureRecognizer进行子类化并创建一个自定义识别器来检测屏幕上有多少个手指。以下是关于如何子类UIGestureRecognizer的注意事项:https://developer.apple.com/library/ios/documentation/uikit/reference/UIGestureRecognizer_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40009279-CH1-SW2

或者您可以对视图实施touchesBegan:withEvent方法并计算触摸次数。

-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { 
    int num_touches = [touches count]; 
} 

只要确保

view.multipleTouchEnabled = YES;