繁体   English   中英

如何在 Swift 中制作透明背景 WKWebView

[英]How to make transparent background WKWebView in Swift

我想要一个快速透明的网页,所以我根据这个答案尝试了下面的代码。 尽管如此,我还是没有得到一个透明的网页。 webview颜色没有任何变化..我可以知道为什么吗? 我哪里错了? 请在下面的代码中帮助我。

总代码:

 import UIKit
 import WebKit
 class WebviewViewController: UIViewController {

@IBOutlet weak var testWebView: WKWebView!

override func viewDidLoad() {
    super.viewDidLoad()


    guard let url = URL(string: "https://developer.apple.com/swift/") else { return }
    let request = URLRequest(url: url)

    testWebView.load(request)
    // Do any additional setup after loading the view.

          self.testWebView = WKWebView()
          self.testWebView!.isOpaque = false
          self.testWebView!.backgroundColor = UIColor.clear
          self.testWebView!.scrollView.backgroundColor = UIColor.clear
}
}

请帮我写代码。

制作透明背景的代码如下您已经添加的内容。

self.testWebView!.backgroundColor = UIColor.clear

现在的问题是你已经添加了正确的代码,那么为什么你没有得到可靠的输出..?

此外,如果您尝试使用任何值self.testWebView!.alpha ,它将影响所有WebPages因为WkWebView是单个视图,更改它的 alpha 也会影响其中的组件...

发生这种情况是因为您在 WebViewController 中加载的页面有一些HTMLCSS代码,您使 WebViewController 透明,但由于该HTMLCSS您无法看到它的透明度,因为每个webpage都有自己的背景颜色设置(这是不可能的)更改每个webpage

我希望你能理解,它会帮助你...:)

正如我所见,您使用 storyboard ( @IBOutlet ) 并且您可以使用 Storyboard 来设置您的WKWebView 在此处输入图片说明

关于代码。 这对于结果来说已经足够了。 您不应该再次设置self.testWebView = WKWebView() ,因为您使用故事板并且可以使用故事板设置isOpaque 结果:

class ViewController: UIViewController, WKNavigationDelegate {

    @IBOutlet var webView: WKWebView!

    override func viewDidLoad() {
        super.viewDidLoad()

        webView.navigationDelegate = self

        let url = URL(string: "https://developer.apple.com/swift/")!
        webView.load(URLRequest(url: url))
    }

    func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
        let js = "(function() { document.body.style.background='transparent'; })();"
        webView.evaluateJavaScript(js) { (_, error) in
            print(error)
        }
    }
}

evaluateJavaScript帮助增加了背景的透明度: 在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM