[英]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 中加载的页面有一些HTML
和CSS
代码,您使 WebViewController 透明,但由于该HTML
和CSS
您无法看到它的透明度,因为每个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)
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.