[英]No calls occurring for observeValueForKeyPath for UIProgressView in Swift
在本教程的幫助下,我使用Swift向視圖添加了進度條,但觀察者本身並未獲得任何調用。
// ViewController.swift
import UIKit
import WebKit
class ViewController: UIViewController, WKNavigationDelegate {
var webView: WKWebView?
@IBOutlet dynamic var progressView: UIProgressView!
override func viewDidLoad() {
super.viewDidLoad()
setupBrowser()
self.addObserver(self, forKeyPath: "estimatedProgress", options: .New, context: nil)
let website = "https://google.com"
let site = NSURL(string: website)
loadURLRequest(NSURLRequest(URL: site!))
}
func setupBrowser() {
let wkWebView = WKWebView(frame: view.bounds)
wkWebView.navigationDelegate = self
webView = wkWebView
let wkProgressView = UIProgressView(frame: view.bounds)
progressView = wkProgressView
self.view.insertSubview(wkWebView, belowSubview: wkProgressView)
}
func loadURLRequest(request: NSURLRequest) {
webView?.loadRequest(request)
}
func webView(webView: WKWebView, didFinishNavigation navigation: WKNavigation!) {
print("Finished navigating")
}
override func observeValueForKeyPath(keyPath: String?, ofObject object: AnyObject?, change: [String : AnyObject]?, context: UnsafeMutablePointer<Void>) {
print(1)
if (keyPath == "estimatedProgress") {
// TODO
}
}
}
看一下SWIFT-xcode 6 beta 6中的KVO。不再調用 watchValueForKeyPath或未 調用 observeValueForKeyPath沒有幫助。 UIProgressView是否不可觀察? 每次頁面加載Finished navigating
后,控制台都會顯示Finished navigating
但不會一次1
。
它應該是
self.webView.addObserver(self, forKeyPath: "estimatedProgress", options: .New, context: nil)
您觀察webview的estimateProgress
進度,獲取進度,然后設置進度的進度
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.