簡體   English   中英

在Swift中沒有發生針對UIProgressView的observeValueForKeyPath的調用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM