什麼會的切換從一個UIWebView來WKWebView代表
webView.delegate = self
相當於是一個WKWebView?我有
webView2.UIDelegate = self
但它不按預期工作。
什麼會的切換從一個UIWebView來WKWebView代表
webView.delegate = self
相當於是一個WKWebView?我有
webView2.UIDelegate = self
但它不按預期工作。
您確定only
更改爲代碼正在更改UIWebView
至WKWebView
?我做了一個示例項目,輕擊手勢識別器同時適用於UIWebView
和WKWebView
。以下是相關代碼:
class ViewController: UIViewController, UIGestureRecognizerDelegate {
override func viewDidLoad() {
super.viewDidLoad()
let webView = WKWebView(frame: view.frame)
view.addSubview(webView)
webView.translatesAutoresizingMaskIntoConstraints = false
let urlString = "https://www.google.com"
let url = NSURL(string: urlString)!
let urlRequest = NSURLRequest(URL: url)
webView.loadRequest(urlRequest)
let recognizer = UITapGestureRecognizer(target: self, action: #selector(webViewTapped))
recognizer.delegate = self
webView.addGestureRecognizer(recognizer)
}
func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWithGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool {
return true
}
func webViewTapped(recognizer: UITapGestureRecognizer) {
print("Tapped")
}
}
在點擊視圖後,它必須位於我的函數中。 – tda
您可以使用鍵值觀察來監視WKWebView的canGoBack和canGoForward。
SWIFT 3
將兩個鍵值觀察者添加到WKWebView。
let webView = WKWebView(frame: view.frame)
view.addSubview(webView)
webView.addObserver(self, forKeyPath: #keyPath(WKWebView.canGoBack), options: .new, context: nil)
webView.addObserver(self, forKeyPath: #keyPath(WKWebView.canGoForward), options: .new, context: nil)
現在,在您的視圖控制器中實現observeValue(forKeyPath :)方法。
override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
if keyPath == #keyPath(WKWebView.canGoBack) || keyPath == #keyPath(WKWebView.canGoForward) {
// Do Something...
}
}
例如,您可以在按鈕的變化色調顏色中添加類似的內容。
backButton.imageView?.tintColor = webView.canGoBack ? UIColor.blue : UIColor.gray
forwardButton.imageView?.tintColor = webView.canGoBack ? UIColor.blue : UIColor.gray
我發現這種方法是通過閱讀這裏的一篇文章。
有'navigationDelegate'允許您處理頁面加載事件。 – paulvs
不讓我使用水龍頭手勢 – tda
你想要做什麼?添加輕擊手勢識別器以與Web視圖HTML內容交互? – paulvs