UIWebView with Progress Bar

后端 未结 9 1369
攒了一身酷
攒了一身酷 2020-12-08 00:47

Hi I\'m new to programming and I\'m trying to make my first app for iPhones on Xcode. My app contains of a button which opens a UIWebView when pressed and loads up a homepag

9条回答
  •  挽巷
    挽巷 (楼主)
    2020-12-08 01:27

    I have tried the following pattern. It gave me a little bit better result. I am using WKWebview.

    @IBOutlet weak var progressView: UIProgressView! // added in storyboard
    @IBOutlet weak var webView: WKWebView!
    
        override func viewDidLoad() {
            super.viewDidLoad()
            // Do any additional setup after loading the view.
            setupEstimatedProgressObserver()
        }
    
        // Observe the WebViewClient for estimatedProgress value
        private func setupEstimatedProgressObserver() {
            estimatedProgressObserver = webView.observe(\.estimatedProgress, options: [.new]) { [weak self] webView, _ in
                self?.progressView.progress = Float(webView.estimatedProgress)
            }
        }
    
        //When WebView load finished in WKNavigationDelegate in didFinish method we will use the following approach
        func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
            self.progressView.progress =  1.0
            DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
                // your code here
                 self.progressView.isHidden = true
            }
        }
    

提交回复
热议问题