如何为WKWebView提供彩色背景

时间:2014-12-26 10:35:22

标签: cocoa-touch uikit wkwebview

我正在开发一个应用程序,我在其中加载了大部分深色背景的不同html文件。现在,当从一个页面导航到另一个页面时,会出现一个小的白色闪光,可能是因为下一页尚未加载。我想摆脱那个闪存,并认为最简单的方法是给WebView一个背景色。

我尝试设置WebView的颜色以及其中的scrollView,但这似乎不起作用:

self.webView?.backgroundColor = UIColor.blackColor()
self.webView?.scrollView.backgroundColor = UIColor.blackColor()

第一次加载视图时会看到闪烁的颜色,但后续导航时却看不到。

4 个答案:

答案 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
}