ios 当WKWebView显示内容时,它将显示白色约1~2秒

4bbkushb  于 2023-08-08  发布在  iOS
关注(0)|答案(2)|浏览(143)

当WKWebView显示内容时,它将显示白色,持续约1~2秒。不是内存问题,我用的是[self loadHTMLString:string baseURL:baseURL];显示HTML内容,但每次需要等待1~2秒才会正常显示。UIWebview没有这个问题。
有什么办法解决吗?或者优化这个空白时间?

bz4sfanl

bz4sfanl1#

有时需要一段时间才能通过网络加载页面。在数据加载之前,页面为白色。一个简单的解决方案是尽早发出load()命令。在它需要被调用之前。我预计下一页,但不显示它,直到它是必要的。当需要的时候,它已经加载了,我只需要添加它:

viewController.view.addSubview(webView)

字符串
根据我的需要,我使用两种不同的方法:我要么提前加载视图,然后将Alpha更改为0,这样它就不可见了:

webView.alpha = 0


当然,当我想要它显示时,我会将它改为1. 0。
或者我从superview中删除web视图(它需要是一个类属性,这样它才能被保留),像这样:

func removeWebView(_: UITapGestureRecognizer) {
    print("removewebview tap")
    webView.removeFromSuperview()
}


如果遵循此方法,则需要调用一个方法将子视图(Web视图)添加回来,如果使用自动布局,则需要重新应用约束,因为当您从超级视图中删除Web视图时,这些约束会丢失。如果这样做,不要忘记在父视图上调用.setNeedsLayout()。

nx7onnlm

nx7onnlm2#

iOS上最有效的解决方案,以防止WKWebView不必要的白色背景,以防您的视图设置的其余部分是黑暗的:

webView.isOpaque = false

字符串

相关问题