Xcode13加载WebView前去除白屏?

问题描述 投票:0回答:5

在 iOS 中加载 webview 之前需要删除白屏,尝试了 webview 不透明。 即使添加了启动屏幕和启动屏幕后,在加载 Webview URL 之前我仍然会看到白色的启动屏幕。

import UIKit
import WebKit
class HomeViewController: UIViewController, WKUIDelegate {
    
    var webView: WKWebView!
     
    override func loadView() {
        let webConfiguration = WKWebViewConfiguration()
        webView = WKWebView(frame: .zero, configuration: webConfiguration)
        webView.uiDelegate = self        
        view = webView
        webView.isOpaque = false
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()

        let webConfiguration = WKWebViewConfiguration()
        webView = WKWebView(frame: .zero, configuration: webConfiguration)
        webView.translatesAutoresizingMaskIntoConstraints = false
        let myURL = URL(string:"https://google.com")
        let myRequest = URLRequest(url: myURL!)
        

        
        view.addSubview(webView)
        webView.load(myRequest)

        NSLayoutConstraint.activate([
            webView.topAnchor.constraint(equalTo: view.topAnchor),
            webView.bottomAnchor.constraint(equalTo: view.bottomAnchor),
            webView.leftAnchor.constraint(equalTo: view.leftAnchor),
            webView.rightAnchor.constraint(equalTo: view.rightAnchor)
        ])}
}
ios swift webview xcode13
5个回答
0
投票

你尝试过去掉webView的背景色吗?

webView.backgroundColor = .clear

0
投票

你尝试过吗

self.webView.scrollView.backgroundColor = .clear

0
投票

建议可以实现您想要的效果的替代路线:也许您可以引入一个不透明或半透明的视图或子视图来覆盖网络视图,直到您的内容加载。像这样的:

一旦您知道您的请求得到了经过验证的响应,您就可以进行回调来删除所述视图?


0
投票

//Xcode13

webView.isOpaque = false; 
webView.backgroundColor = UIColor.clear;

0
投票

任何正在寻找 appkit 的 macOS 解决方案的人,请尝试这个。

webview.setValue(false, forKey: "drawsBackground")

这在 Xcode 15、Ventura 13.5.2 中对我有用

© www.soinside.com 2019 - 2024. All rights reserved.