私は、背景がほとんど暗いさまざまなhtmlファイルを読み込むアプリで作業しています。現在、あるページから別のページに移動するときに小さな白いフラッシュが表示されます。これは、次のページがまだ読み込まれていないためと考えられます。そのフラッシュを取り除きたいので、最も簡単な方法はWebViewに背景色を与えることだと思いました。
WebViewとその内部のscrollViewの色を設定しようとしましたが、うまくいかないようです。
self.webView?.backgroundColor = UIColor.blackColor()
self.webView?.scrollView.backgroundColor = UIColor.blackColor()
ビューが最初に読み込まれたときに色が点滅しますが、その後のナビゲーションでは表示されません。
暗い背景で「白いフラッシュ」を停止するには、次の操作を行います
webView.opaque = false
これは実際には背景色の問題を解決しませんが、少なくとも経験している「白いフラッシュ」を止めます。どうやらHTMLをロードする前にWKWebViewの背景色を変更する方法がないようです。
Swift 4
webView.isOpaque = false
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
はオプションであるため、初期化しないことを忘れないでください。
SoryboardのWKWebView
をクリックし、属性インスペクターパネルから優先Background色を選択します。
次に、_content.isOpaque = false
_を入れます。たとえば、WKWebView
はviewDidLoad()
にロードされます。
_@IBOutlet weak var content: WKWebView!
...
content.isOpaque = false
_
1つのプロジェクトで読み込み要求を行ったときに、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
}