UITapGestureRecognizer をアプリに追加して、2 本の指のタップすべてを検出して操作できるようにしようとしていますが、他のユーザー入力はすべて通過させます。些細なことに聞こえますが、私はそれを機能させることができません。メインビューコントローラー内のこれまでのコードは次のとおりです。
- (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
}
}
何が起こるか: 2 本の指でタップすると、handleTap メソッドがトリガーされます。スワイプ、ピンチ、1 本指タップなど、その他のユーザー入力は、他のビュー (特に UIToolbar、UIWebView) によって取得されません。
これに関する洞察をいただければ幸いです。問題について十分に具体的でない場合はお知らせください。