iOS - 检测屏幕上有多个手指

时间:2010-09-30 17:48:37

标签: iphone ipad touch detection gesture-recognition

我正在寻找在屏幕上检测多个手指的最佳方法。我没有检测到水龙头或捏,只是发生了不止一次触摸的事实。似乎没有任何手势识别器。什么是最好的方式?

5 个答案:

答案 0 :(得分:13)

在touchesBegan,touchesMoved和touchesEnded方法中,一个参数是event,它是一个UIEvent对象。屏幕上的手指数为[[event allTouches] count]。

[编辑,因为Josh Hinman指出我以前做错了 - 我以前建议在相同方法的touches参数上使用[touches count]将不起作用。]

答案 1 :(得分:3)

阅读-touchesBegan:withEvent:方法。这是多点触控事件处理的切入点。

这是关于多点触控事件的开发人员的lib链接: https://developer.apple.com/library/ios/#documentation/EventHandling/Conceptual/EventHandlingiPhoneOS/MultitouchEvents/MultitouchEvents.html

答案 2 :(得分:0)

单/多点触控对您来说是透明的 - 您只需获得触摸开始/移动/结束/点击的通知。如果同时发生两次触摸,您将收到两者的通知。

我不知道任何内置函数可以确定您看到的触摸序列是否包含捏 - 但您可以查看Apple的“触摸”示例代码以获取灵感。

https://developer.apple.com/library/ios/#samplecode/Touches/

答案 3 :(得分:0)

您可以尝试使用UITapGestureRecognizer类,并将numberOfTouchesRequired属性设置为2.

请注意,只有在视图中将multipleTouchEnabled设置为YES时才会有效。

答案 4 :(得分:0)

  • (void)touchesBegan:(NSSet *)触及withEvent:(UIEvent *)事件{

    NSLog(@"%lu",[[event allTouches] count]); }