iOS TapGestureRecognizer - 多项工作实施

时间:2014-07-23 20:06:26

标签: ios objective-c uigesturerecognizer uitapgesturerecognizer

目标:我想检测用户用来点按屏幕的手指数。

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

这是最佳解决方案吗?这对我来说很难过。

1 个答案:

答案 0 :(得分: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;