禁用 WKWebView 缩放

Disable WKWebView zooming

我有一个 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   
}

任何提示可能是什么原因造成的?

请尝试禁用缩放手势。

func scrollViewWillBeginZooming(_ scrollView: UIScrollView, with view: UIView?) {
     scrollView.pinchGestureRecognizer?.isEnabled = false
}