UIGestureRecognizer 有个方法叫做requireGestureRecognizer ToFail,他可以指定某一个
recognizer,即便自己已经滿足條件了,也不會立刻触发,会等到该指定的 recognizer
确定失败之后才触发。以同时支持单点与双点的手势为例,代码如下:
//
单击的 Recognizer
UITapGestureRecognizer* singleRecognizer;
singleRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:selfaction:@selector(handleSingleTapFrom)];
singleTapRecognizer.numberOfTapsRequired = 1; //
单击
[self.view addGestureRecognizer:singleRecognizer];
//
关键在这一行,如果双击确定偵測失败才會触发单击
[singleRecognizer requireGestureRecognizer ToFail:doubleRecognizer];
[singleRecognizer release];
[doubleRecognizer release];
- (void)viewDidLoad {
// 双击的 Recognizer
UITapGestureRecognizer* double;
doubleRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:selfaction:@selector(handleDoubleTapFrom)];
doubleTapRecognizer.numberOfTapsRequired = 2; //
双击
[self.view addGestureRecognizer:doubleRecognizer];
}