gpt4 book ai didi

html - 调整字体大小后 WKWebView contentSize 高度不改变

转载 作者:行者123 更新时间:2023-12-01 17:57:28 26 4
gpt4 key购买 nike

我使用 UIScrollView 并在底部放置一些 UILabels 和 WKWebView。 WkWebView 框架大小始终等于其 contentSize,并且我禁用其 userInteraction。我使用 html 字符串在 WKWebView 中显示数据。在将 html 字符串加载到 WKWebView 之前,我可以通过替换 css 中的关键字来更改 WKWebView 中的字体大小。

我的问题是当我增加字体大小时,WKWebView的scrollView.contentSize.height也会增加,但是当我减小字体大小时,WKWebView的scrollView.contentSize.height没有减少。它总是记住它的最大值。这在 WKWebView 和我的 UIScrollView 中留下了很大的空白。如何使WKWebView的scrollView.contentSize适合其内容?

这是我在 WKWebView 完成加载其内容时调整 UIScrollView 大小的代码。

func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
print(webView.scrollView.contentSize.height)
self.webView.frame = CGRect(x: self.webView.frame.origin.x, y: self.webView.frame.origin.y, width: webView.scrollView.contentSize.width, height: webView.scrollView.contentSize.height)
self.scrollView.contentSize = CGSize(width: contentView.bounds.width, height: self.webView.frame.origin.y + webView.scrollView.contentSize.height)
}

最佳答案

我通过将初始字体大小(小字体)的高度保存在变量中来处理它,并在更改字体大小时返回大字体的正确高度,但在再次返回小字体时不返回正确的高度....这就是为什么我不在再次返回小字体后计算字体,而是从我之前保存的变量中获取值..

var webviewHeightForSmallFont : CGFloat = 0


webView.evaluateJavaScript("document.documentElement.scrollHeight", completionHandler: { (height, error) in
let h = height as! CGFloat
if self.textSize == 100 && self.webviewHeightForSmallFont == 0{
self.webviewHeightForSmallFont = h
}
if self.webviewHeightForSmallFont != 0 && self.textSize == 100 {
self.delegate!.webViewDidGotHeight(self.webviewHeightForSmallFont)
}
else if self.cellHeight != h {
self.delegate!.webViewDidGotHeight(h)
}
else if h == 0 {
self.delegate!.webViewDidFaildToGotHeight()
}

在上面的代码中,100 尺寸用于小字体,150 尺寸用于大代码...上面的代码部分检查字体是否设置为小并且没有其他值,然后 0 ...然后将高度保存在webviewHeightForSmallFont 变量,如果它已经有一些值并且字体很小,那么使用最后一个值......因为它对于大字体工作正常。

关于html - 调整字体大小后 WKWebView contentSize 高度不改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49478601/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com