iOS - detect when more than one finger is on the screen

我只是一个虾纸丫 提交于 2019-12-08 16:18:34

问题


I'm looking for the best way to detect more than one finger on the screen at time. I'm not detecting taps or pinching, just the fact that more than one touch is happening. There don't seem to be any gesture recognizers for that. What's the best way?


回答1:


In the touchesBegan, touchesMoved, and touchesEnded methods, one parameter is event, which is a UIEvent object. The number of fingers on the screen is [[event allTouches]count].

[EDITED because Josh Hinman pointed out that I had it wrong before -- my previous suggestion of using [touches count] on the touches parameter in those same methods will not work.]




回答2:


Read up on the -touchesBegan:withEvent: method. It's the entry point into multi-touch event handling.

Here's a developer's lib link on multitouch events: https://developer.apple.com/library/ios/#documentation/EventHandling/Conceptual/EventHandlingiPhoneOS/MultitouchEvents/MultitouchEvents.html




回答3:


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

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




回答4:


One/Multi touch is transparent to you - You just get notifications on where a touch started/moved/ended/tapped. If two touches occur at the same time, you will get notifications for both.

I don't know of any built-in function which determines whether or not the touch sequences you see consist of a pinch - But you can take a look at the "touches" sample code from Apple for inspiration.

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




回答5:


You can try using a UITapGestureRecognizer class, and set the numberOfTouchesRequired property to 2.

Note that this will only work if multipleTouchEnabled is set to YES on the view.



来源:https://stackoverflow.com/questions/3833343/ios-detect-when-more-than-one-finger-is-on-the-screen

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!