Почему WkWebView масштабирует контент на 40%, а UIWebView нет? - PullRequest
0 голосов
/ 21 октября 2018

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

InВ моих тестах 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.

enter image description here

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

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

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

...