将UITapGestureRecognizer添加到UIWebView

use*_*339 24 iphone objective-c uiwebview uigesturerecognizer ios

在iOS中,是否可以在UIWebView上放置点击识别器,以便当有人单击Web视图时,会执行某个操作?

当我点击我的webView时,下面的代码似乎没有火手柄.

谢谢.

UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self 
                                                                      action:@selector(handleTap)];
tap.numberOfTapsRequired = 1;

[webView addGestureRecognizer:tap];
[tap release]; 


-(void) handleTap {
    NSLog(@"tap");
}
Run Code Online (Sandbox Code Playgroud)

Bry*_*yan 42

我发现我必须实现这个方法才能让它工作:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
    return YES;
}
Run Code Online (Sandbox Code Playgroud)


hig*_*ted 24

你的UIViewController子类应该实现UIGestureRecognizerDelegate并返回YESgestureRecognizer: shouldReceiveTouch:适当的时候.

然后,您可以将其分配给UIGestureRecognizer的delegate属性.

tap.delegate = self;
Run Code Online (Sandbox Code Playgroud)


Kir*_*n S 10

  1. 添加UIGestureRecognizerDelegate以查看控制器

    <UIGestureRecognizerDelegate>
    
    Run Code Online (Sandbox Code Playgroud)
  2. 将Tap Gesture添加到Webview.

    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(flip)];
    tap.numberOfTapsRequired = 1;
    tap.delegate = self;
    [_webview addGestureRecognizer:tap];
    
    Run Code Online (Sandbox Code Playgroud)
  3. - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer    shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
        return YES;
    }
    
    Run Code Online (Sandbox Code Playgroud)