56

私のアプリでは、背景が透明な WKWebView を作成したいので、背後のビュー (ImageView) が背景画像として表示されます。

    webView!.opaque = false
    webView!.backgroundColor = UIColor.clearColor()

上記のコードは UIWebView で正常に動作しますが、webView が WKWebView の場合、白い背景が表示されます。

またCSSで背景色を透過させてみました。結果は同じで、UIWebView でのみ機能し、WKWebView では機能しません。なにか提案を?

4

12 に答える 12

34

このコードはあなたを助けるかもしれません。Swift 3+ 向けに更新

self.webView = WKWebView()
self.webView.isOpaque = false
self.webView.backgroundColor = UIColor.clear
self.webView.scrollView.backgroundColor = UIColor.clear
于 2015-11-06T14:38:49.853 に答える
5

このバグは Beta 5 で修正されたようです。

于 2014-08-04T21:44:45.473 に答える
0

WKWebView はまだ使用していませんが、UIWebView でさえこの問題を抱えていました。解決策は、html コンテンツを次のようにラップすることでした。

<body style="background-color:transparent;"></body>

それが役に立てば幸い。

于 2014-07-10T23:12:17.977 に答える
0

私の場合、スタイルで背景色を透明に変更し、電話/シミュレーターからアプリを手動で削除する必要があります-WKWebViewキャッシュHTML /スタイルのようです

于 2021-10-20T08:44:42.457 に答える
0

それが役立つかどうかはわかりませんが、以下のこのソリューションを使用しました:

func setBackgroundWhite(subviews: [UIView]) {
  for subview in subviews {
    subview.backgroundColor = .white
    setBackgroundWhite(subviews: subview.subviews)
  }
 }

これは、サブビューの内部で再帰呼び出しを行い、背景を白または別の色に設定します。

PDFファイルをロードするときにこのコードを使用しWKWebView、iOS 10+

于 2020-02-07T15:35:26.037 に答える