拦截UIWebView的UITapGestureRecognizer

use*_*119 1 uiwebview ios swift

我正在试图弄清楚如何拦截点击事件UIWebView.这似乎是正确的姿势UITapGestureRecognizer,但我似乎无法正确看待.我无法在swift中找到解决方案.我的等级是View -> UIWebView.我的用例是部署Web应用程序并根据Web视图导航进行一些自定义操作.例如,能够识别我想要投放插页式广告或显示广告的导航事件UINavigationBar.谢谢你的帮助!

import UIKit

class ViewController: UIViewController {

   @IBOutlet var Webview: UIWebView!

   let URLPath = "http://www.example.com"

   func loadAddressURL(){

       let requestURL = NSURL(string: URLPath)
       let request = NSURLRequest(URL: requestURL!)
       Webview.loadRequest(request)

   }

   override func viewDidLoad() {
       super.viewDidLoad()

       loadAddressURL()
       NSLog("I'm getting going")        

       //NOT SURE IF YOU SHOULD DISABLE THIS OR NOT
       //Webview.userInteractionEnabled=false


       let tapRecognizer = UITapGestureRecognizer(target: self , action: "handleSingleTap:")
       NSLog("I'm past the tab recognizer!\(tapRecognizer)")

       tapRecognizer.numberOfTapsRequired = 1
       Webview.addGestureRecognizer(tapRecognizer)
   }

   override func didReceiveMemoryWarning() {
       super.didReceiveMemoryWarning()
       // Dispose of any resources that can be recreated.
   }

   func handleSingleTap(recognizer: UITapGestureRecognizer) {
       //
       NSLog("I made it here")
   }   

}
Run Code Online (Sandbox Code Playgroud)

Jog*_*Com 11

首先设置Gesture Delegate并继承geture UIGestureRecognizerDelegate

tapRecognizer.delegate = self
Run Code Online (Sandbox Code Playgroud)

并插入此委托

func gestureRecognizer(UIGestureRecognizer,  shouldRecognizeSimultaneouslyWithGestureRecognizer:UIGestureRecognizer) -> Bool 
{
    return true
}
Run Code Online (Sandbox Code Playgroud)

尝试这可能是帮助 - 全...

  • 我将类定义行改为`类ViewController:UIViewController,UIGestureRecognizerDelegate {`以及你编写的其他代码,现在它正在工作.谢谢! (2认同)