UIWebview约束未调整

问题描述 投票:0回答:1

所以,我有一个Web视图,其内容字体可以通过滑块增加/减少。当我向上滑动时,字体大小会增加,而webview约束会不断增加以适应内容。但是当我向下滑动时,约束仍保持在向上滑动时的最后状态,它不会改变,但是字体会减少。所以我有很多空白,因为高度限制没有改变。

@objc func changeFontSize(_ sender: UISlider!) {
        let webViewSize = 16 * sender.value
        let jsString = "document.getElementsByTagName('body')[0].style.fontSize='\(webViewSize)px'"
        webView.stringByEvaluatingJavaScript(from: jsString)
        webViewDidFinishLoad(webView) 
}
func webViewDidFinishLoad(_ webView: UIWebView) {
        let webViewTextSize = webView.sizeThatFits(CGSize(width: 1.0, height: 1.0))
        var webViewFrame = webView.frame
        webViewFrame.size.height = webViewTextSize.height
        webView.frame = webViewFrame
        webHeightConstraints.constant = webViewTextSize.height
        webView.scrollView.isScrollEnabled = false
        webView.scrollView.bounces = false
    }

这是我的代码,我尝试将webHeightConstraints.constant更改为webview.scrollView.contentSize.height,但得到了相同的结果。其他所有值均根据滑块更改,仅更改高度限制。它仅在幻灯片向上滑动时变化,然后保持该值。

swift xcode uiwebview constraints uislider
1个回答
0
投票

我也面临同样的问题。尝试在上下滑动时清除webview,这将是清除webview的代码。

final class WebCacheCleaner {

    class func clear() {
        URLCache.shared.removeAllCachedResponses()
        HTTPCookieStorage.shared.removeCookies(since: Date.distantPast)

        WKWebsiteDataStore.default().fetchDataRecords(ofTypes: WKWebsiteDataStore.allWebsiteDataTypes()) { records in
            records.forEach { record in
                WKWebsiteDataStore.default().removeData(ofTypes: record.dataTypes, for: [record], completionHandler: {})
                print("[WebCacheCleaner] Record \(record) deleted")
            }
        }
    }
}

像这样WebCacheCleaner.clear()拨打电话>

© www.soinside.com 2019 - 2024. All rights reserved.