Отключить масштабирование WKWebView - PullRequest
0 голосов
/ 16 мая 2018

У меня есть 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 голосов
/ 16 мая 2018

Пожалуйста, попробуйте отключить масштабирование для жеста повышения.

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