我在加载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
}
}
}
为什么这不起作用?如何遮盖黑屏并显示图像? 谢谢
答案 0 :(得分:0)
如果您需要组合情节提要代码,那么
{{1}}
答案 1 :(得分:0)
在行中
logoImageView.image = #imageLiteral(resourceName: "mijnmedicijn") //error
您的项目(应用包)中应该有一个名称为"mijnmedicijn"
的图像资源,否则它将崩溃。
我使用有效资源按原样尝试了您的代码,并且该代码已成功按您的问题预期运行。但是,当我给一个无效的资源名称(即项目中不存在的资源名称)时,就会发现崩溃。