WKWebView隐藏时如何将黑屏改为图像

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

我在加载时隐藏了我的WKWebView。但是,虽然它是隐藏的,它只是向我显示一个黑屏。

我已经尝试连接main.storyboard中的图像视图并在隐藏WKWebView时显示它。但是,这给了我一个线程1致命错误:在解开一个可选项时意外地发现了nil。

这是我的代码:

override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        webView.navigationDelegate = self

        logoImageView.image = #imageLiteral(resourceName: "mijnmedicijn") //error
        logoImageView.isHidden = false //error
        webView.isHidden = true
        webView.isOpaque = false
        webView.backgroundColor = UIColor.white

        let myURL = URL(string:"https://www.mijnmedicijn.nl/")
        let myRequest = URLRequest(url: myURL!)
        webView.load(myRequest)

        webView.addObserver(self, forKeyPath: #keyPath(WKWebView.estimatedProgress), options: .new, context: nil)

    }

    override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
        if keyPath == "estimatedProgress" {
            print(Float(webView.estimatedProgress))
            if Float(webView.estimatedProgress) == 1 {
                webView.isHidden = false
                logoImageView.isHidden = true
            }
        }
    }

为什么这不起作用?我如何掩盖黑屏并显示图像?谢谢

ios swift wkwebview
2个回答
0
投票

如果您需要组合故事板代码

override func loadView() {
  super.loadView()  // <<<< call this 

0
投票

在线logoImageView.image = #imageLiteral(resourceName: "mijnmedicijn") //error

您的项目(应用程序包)中应该有一个名为"mijnmedicijn"的图像资源,否则它将崩溃。

我使用有效资源尝试了您的代码,并在您的问题中按预期成功运行。但是当我给出一个无效的资源名称(即我项目中不存在的资源的名称)时,就会发现崩溃。

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