我正在尝试将 UITapGestureRecognizer 添加到我的应用程序中,这样我就可以检测到所有两个手指点击并采取行动,但可以传递任何其他用户输入。听起来微不足道,但我就是无法让它工作。到目前为止,这是我的代码,在我的主视图控制器中:
- (void) viewDidLoad {
// other init stuff
UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];
[tapRecognizer setNumberOfTouchesRequired:2];
[tapRecognizer setNumberOfTapsRequired:1];
[tapRecognizer setCancelsTouchesInView:NO];
UIView *tapHolderView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
[tapHolderView setMultipleTouchEnabled:YES];
[tapHolderView addGestureRecognizer:tapRecognizer];
[self.view addSubview:tapHolderView];
[tapRecognizer release];
}
- (void) handleTap:(UITapGestureRecognizer *) sender {
if (sender.state == UIGestureRecognizerStateEnded) {
// do something
}
}
发生的情况是这样的:两根手指点击将触发 handleTap 方法。任何其他用户输入,无论是滑动、捏合、单指点击等,都不会被任何其他视图(UIToolbar、UIWebView 等)拾取。
我非常感谢对此的任何见解,如果我对这个问题不够具体,请告诉我。