iOS - 检测屏幕上是否有超过一个手指

9
我正在寻找最佳方法来检测屏幕上同时出现的多个手指。我不是在检测轻点或捏合操作,只是想知道是否有超过一个触摸点。似乎没有适用于此的手势识别器。哪种方法最好?

这是针对屏幕的任何位置,还是特定视图? - Kris Markel
5个回答

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

3
我认为这不可靠地给出了屏幕上总触摸的数量; 只能给出正在更新的触摸数。换句话说,如果我在屏幕上放了三个手指,并且我移动了一个手指,同时保持其他两个手指不动,那么touchesMoved:将会被调用一次,其中包含一个触摸对象的NSSet(即我移动的那个手指)。 - Josh Hinman

4

我在视图控制器中尝试了这个方法,但它从未被调用: -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { NSLog(@"num touches: %d", [touches count]); } - sol

1
  • (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

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

该代码段为Objective-C语言,在iOS开发中常用。当用户触摸屏幕时,该方法将被调用,并输出触摸数目。

0

单点触控/多点触控对您来说是透明的 - 您只会收到有关触摸开始/移动/结束/轻击的通知。如果同时发生两个触摸,您将收到两个通知。

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

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


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接