IOSでは、UIWebViewにタップレコグナイザーを配置して、誰かがWebビューをシングルタップしたときにアクションが実行されるようにすることは可能ですか?
以下のコードは、webViewをタップしたときにhandleTapが起動していないようです。
ありがとう。
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self
action:@selector(handleTap)];
tap.numberOfTapsRequired = 1;
[webView addGestureRecognizer:tap];
[tap release];
-(void) handleTap {
NSLog(@"tap");
}
私はそれを機能させるためにこのメソッドを実装しなければならないことに気づきました:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
return YES;
}
UIViewControllerサブクラスはUIGestureRecognizerDelegate
を実装し、必要に応じてgestureRecognizer: shouldReceiveTouch:
からYES
を返す必要があります。
次に、それをUIGestureRecognizerのデリゲートプロパティに割り当てることができます。
tap.delegate = self;
UIGestureRecognizerDelegateをビューコントローラに追加します
<UIGestureRecognizerDelegate>
TapGestureをWebviewに追加します。
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(flip)];
tap.numberOfTapsRequired = 1;
tap.delegate = self;
[_webview addGestureRecognizer:tap];
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
return YES;
}