У меня проблемы с выяснением того, как получить ProgressView, который я преобразовал в предполагаемый прогресс в отображаемый индикатор пользовательского интерфейса. В моем выводе я ясно вижу, что он отслеживает данные, но ничего не отображается в пользовательском интерфейсе при запуске теста. Я хочу добавить индикатор в нижней части панели навигации.
class CycleViewController: UIViewController, WKNavigationDelegate, WKUIDelegate {
@IBOutlet var webView: WKWebView!
@IBOutlet var progressView: UIProgressView!
override func loadView() {
let webConfiguration = WKWebViewConfiguration()
webConfiguration.applicationNameForUserAgent = "Version/8.0.2 Safari/600.2.5"
webView = WKWebView(frame: .zero, configuration: webConfiguration)
webView.uiDelegate = self
view = webView
progressView = UIProgressView(progressViewStyle: .default)
progressView.sizeToFit()
progressView.progressTintColor = UIColor(red: 255/255, green: 204/255, blue: 0/255, alpha: 1.0)
}
override func viewDidLoad() {
super.viewDidLoad()
webView.backgroundColor = UIColor.clear
webView.backgroundColor = UIColor(red: 0.0196, green: 0.4, blue: 0.2902, alpha: 1.0)
webView.isOpaque = false
self.webView.load(NSURLRequest(url: URL(string: "https://jwelsh19.wixsite.com/countryday")!) as URLRequest);
self.webView.addObserver(self, forKeyPath: "estimatedProgress", options: .new, context: nil);
}
override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
if keyPath == "estimatedProgress" {
print(self.webView.estimatedProgress);
self.progressView.progress = Float(self.webView.estimatedProgress); }
}
}