Высота WebView не изменилась после обновления константы ограничения - PullRequest
0 голосов
/ 05 января 2020

Я использую webview внутри ячейки uicollectionview. Я обновляю константу ограничения высоты веб-просмотра после загрузки html. следующим образом.

public func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
        print("Load Completed")
        webView.evaluateJavaScript("document.readyState", completionHandler: { (complete, error) in
            if complete != nil {
                self.webview.evaluateJavaScript("document.body.offsetHeight", completionHandler: { (height, error) in

                    DispatchQueue.main.async {
                        self.webviewHeightConstraint.constant = height as! CGFloat
                        print("Height ",height as! CGFloat)
                        self.webview.setNeedsUpdateConstraints()
                    }
                })
            }
        })
    }

это дает правильное значение высоты, но пользовательский интерфейс не изменяется, пока я не прокрутил немного. Но я запускаю прокрутку, высота веб-просмотра изменилась правильно. В чем проблема здесь. Пожалуйста, помогите мне.

Спасибо,

Ответы [ 2 ]

1 голос
/ 05 января 2020

Заменить

self.webview.setNeedsUpdateConstraints()

на

self.view.layoutIfNeeded()
0 голосов
/ 06 января 2020

Миграция в WKWebView

Полный код для WKWebView будет:

func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
    webView.frame.size.height = 1
    webView.frame.size = webView.scrollView.contentSize
}
...