我正在开发一个应用程序,我在其中加载了大部分深色背景的不同html文件。现在,当从一个页面导航到另一个页面时,会出现一个小的白色闪光,可能是因为下一页尚未加载。我想摆脱那个闪存,并认为最简单的方法是给WebView一个背景色。
我尝试设置WebView的颜色以及其中的scrollView,但这似乎不起作用:
self.webView?.backgroundColor = UIColor.blackColor()
self.webView?.scrollView.backgroundColor = UIColor.blackColor()
第一次加载视图时会看到闪烁的颜色,但后续导航时却看不到。
答案 0 :(得分:45)
要在深色背景上停止“白色闪光”,请执行此操作
webView.opaque = false
这并没有真正解决背景颜色问题,但至少它会阻止您遇到的“白色闪光”。 显然,在加载HTML之前似乎没有办法改变WKWebView的背景颜色。
答案 1 :(得分:17)
self.webView = WKWebView()
self.webView.backgroundColor = UIColor(red:0.11, green:0.13, blue:0.19, alpha:1)
self.webView.scrollView.backgroundColor = UIColor(red:0.11, green:0.13, blue:0.19, alpha:1)
不要忘记你的WKWebView
是可选的,所以也许你不会初始化它。
答案 2 :(得分:4)
在木板中单击WKWebView
,然后从属性检查器面板中选择首选的背景颜色。
然后将content.isOpaque = false
放到WKWebView
的加载位置,例如viewDidLoad()
@IBOutlet weak var content: WKWebView!
...
content.isOpaque = false
答案 3 :(得分:3)
当我在一个项目中执行加载请求时,我曾经隐藏了WKWebView。
webView.isHidden = true
webView.load(req)
加载完成后,我再次将webView设置为可见。
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
videoView.isHidden = false
}
func webView(_ webView: WKWebView, didFail navigation: WKNavigation!, withError error: Error) {
activityIndicator.stopAnimating()
videoView.isHidden = false
}