禁用WKWebView缩放

时间:2018-05-15 21:55:04

标签: ios swift wkwebview

我有WKWebView我要禁用缩放。为此,我实施了UIScrollViewDelegate viewForZooming(_:)委托功能,其中我return nil如下:

func viewForZooming(in scrollView: UIScrollView) -> UIView? {
    return nil
}

当我捏时,WKWebView仍会缩放,但我不想要这种效果。

我已将WKWebView isMultipleTouchEnabled设置为false,但这仍然无法禁用缩放。

禁用缩放的唯一一项是将isUserInteractionEnabled设置为false,但是我无法与WKWebView内的链接进行交互,这不是理想的事情。

这就是我声明我的对象以及它是如何设置的方式

private lazy var webView: WKWebView = {
    // script to fit the content with the screen
    var scriptContent = "var meta = document.createElement('meta'); meta.setAttribute('name', 'viewport'); meta.setAttribute('content', 'width=device-width'); document.getElementsByTagName('head')[0].appendChild(meta);"

    let wkuscript = WKUserScript(source: scriptContent, injectionTime: WKUserScriptInjectionTime.atDocumentEnd, forMainFrameOnly: true)
    let wkucontroller = WKUserContentController()
    wkucontroller.addUserScript(wkuscript)

    let wkwebconfig = WKWebViewConfiguration()
    wkwebconfig.userContentController = wkucontroller
    wkwebconfig.preferences.setValue(true, forKey: "developerExtrasEnabled")

    let wv = WKWebView(frame: .zero, configuration: wkwebconfig)
    wv.frame.size.height = 1
    wv.isOpaque = false
    wv.backgroundColor = .clear
    wv.scrollView.backgroundColor = Theme.collectionViewBackgroundColor
    return wv
}()

fileprivate func setupWKWebView() {
    addSubview(webView)
    webView.anchor(top: topAnchor, left: leftAnchor, bottom: bottomAnchor, right: rightAnchor, paddingTop: 0, paddinfLeft: 0, paddingBottom: 0, paddingRight: 0, width: 0, height: 0)

    webView.scrollView.delegate = self
    webView.navigationDelegate = self   
}

任何可能导致此问题的提示?

1 个答案:

答案 0 :(得分:8)

请尝试此操作以禁用缩放以进行捏合手势。

UITextView