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

时间:2019-04-15 21:38:41

标签: ios swift wkwebview

我在加载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
            }
        }
    }

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

2 个答案:

答案 0 :(得分:0)

如果您需要组合情节提要代码,那么

{{1}}

答案 1 :(得分:0)

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

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

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