Почему WkWebView масштабирует контент на 40%, а UIWebView нет?

Я должен встроить WebView в stackView и объявить его внутренний размер из его фактического размера контента, и я делаю это, получая scrollView contentize после события окончания загрузки, чтобы вычислить размер контента.

В моих тестах WkWebView выводил высокий делитель 100px при 40px, но UIWebView (устарел) выводил его при 100px.

class ViewController: UIViewController {
    @IBOutlet weak var webView1: UIWebView!
    @IBOutlet weak var webView2: WKWebView!

    override func viewDidLoad() {
        super.viewDidLoad()
        let html = "<html><body><div style='height:100px; width:100pc; background-color:red'></div></body></html>"
        webView1.delegate = self
        webView2.navigationDelegate = self
        webView1.loadHTMLString(html, baseURL: nil)
        webView2.loadHTMLString(html, baseURL: nil)
    }
}

extension ViewController: UIWebViewDelegate {
    func webViewDidFinishLoad(_ webView: UIWebView) {
        print("UIWebView scrollView content height = \(webView.scrollView.contentSize.height)")
    }
}

extension ViewController: WKNavigationDelegate {
    func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
        print("WKWebView scrollView content height = \(webView.scrollView.contentSize.height)")
    }
}

который создает этот захват в XCode, верхняя часть - UIWebView.

Если я масштабирую DIV, чтобы содержимое было больше высоты webView, например, до 500px, генерируемые журналы

WKWebView scrollView высота содержимого = 0.0
UIWebView scrollView высота содержимого = 516,0

Как я могу получить WkWebView для создания в 1:1 и как я могу получить фактический размер контента?

0 ответов

Другие вопросы по тегам