2017-02-28 344 views
0

我需要添加UIGestureRecognizer到WKWebView。如何添加手势到WKWebView

我将点击手势设置为WKWebView,它的工作原理直到web视图加载url。 加载url后,它无法识别手势。

有没有什么办法可以给WKWebView添加手势?

import UIKit 
import WebKit 

class SwipeObserveExperimentController: UIViewController { 

    let webView: WKWebView = { 
     let v = WKWebView() 
     v.translatesAutoresizingMaskIntoConstraints = false 
     v.scrollView.backgroundColor = .green 
     return v 
    }() 


    override func viewDidLoad() { 
     super.viewDidLoad() 

     // Layout 
     view.addSubview(webView) 
     webView.translatesAutoresizingMaskIntoConstraints = false 

     webView.topAnchor .constraint(equalTo: view.topAnchor ).isActive = true 
     webView.bottomAnchor.constraint(equalTo: view.bottomAnchor ).isActive = true 
     webView.rightAnchor .constraint(equalTo: view.rightAnchor ).isActive = true 
     webView.leftAnchor .constraint(equalTo: view.leftAnchor ).isActive = true 


     // Gesture 
     let tapGesture = UITapGestureRecognizer(target: self, action: #selector(viewTap)) 
     webView.addGestureRecognizer(tapGesture) 


     // Load URL 
     let url = URL(string: "http://www.akr-ski.com/")! 
     let request = URLRequest(url: url) 
     webView.load(request) 
    } 



    func viewTap(gesture: UITapGestureRecognizer) { 
     print("View Tap") 
    } 

} 
+0

它加载的URL,如果没有后添加它添加。 –

回答

4

试试这个

class SwipeObserveExperimentController: UIViewController,UIGestureRecognizerDelegate 

let tapGesture = UITapGestureRecognizer(target: self, action: #selector(viewTap)) 
     tapGesture.delegate = self 
     webView.addGestureRecognizer(tapGesture) 

,并调用下面的方法

func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWithGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool { 
return true 
} 

,并调用功能

func viewTap { 
    print("View Tap") 
} 
+0

在Swift 4中,委托方法签名已更改。 – user3246173