ios – 检测手指上/下UITapGestureRecognizer

如何知道手指何时关闭,UITapGestureRecognizer是什么时候?
documentation说我应该只使用UIGestureRecognizerStateEnded作为tap,所以这意味着当手指关闭时,UIGestureRecognizerStateBegin,但我得到的是UIGestureRecognizerStateEnded.
用于注册识别器的代码是:
[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tap:)]

解决方法

UITapGestureRecognizer是一个离散的手势识别器,因此永远不会转换到开始或改变的状态.来自UIGestureRecognizer类参考:

discrete gestures transition from Possible to either Recognized
(UIGestureRecognizerStateRecognized) or Failed
(UIGestureRecognizerStateFailed),depending on whether they
successfully interpret the gesture or not. If the gesture recognizer
transitions to Recognized,it sends its action message to its target.

(记住当然UIGestureRecognizerStateRecognized == UIGestureRecognizerStateEnded).

文档说您应该检查点击手势识别器的状态,看看它处于其结束状态,然后再触发代码才能确认它.他们并不是说敲击手势实际上转变到了开始或改变的状态(尽管我承认文档在使用的语言上有点误导).

如果你想检查手指识别器的手指按下事件,我会建议只使用touchesBegan:withEvent :,因为这是你真正的反正.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...