我在加载时隐藏了我的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
}
}
}
为什么这不起作用?我如何掩盖黑屏并显示图像?谢谢
如果您需要组合故事板代码
override func loadView() {
super.loadView() // <<<< call this
在线logoImageView.image = #imageLiteral(resourceName: "mijnmedicijn") //error
您的项目(应用程序包)中应该有一个名为"mijnmedicijn"
的图像资源,否则它将崩溃。
我使用有效资源尝试了您的代码,并在您的问题中按预期成功运行。但是当我给出一个无效的资源名称(即我项目中不存在的资源的名称)时,就会发现崩溃。