2017-07-05 27 views
0

サイトを読み込んでユーザーがログインして購入できるiOS WebViewアプリを作成しようとしています。ページを読み込むときにプログレスバーを表示しようとしていますが、進捗状況が全く表示されず、どこが間違っているのかわかりません。私もビューをリフレッシュするためのプルを持っていますが、プログレスバーがなければ、これもどちらかが動作していることを確認することはできません。これは私のコードですが、どんな助けでも大歓迎です!iOS Swift 3 WKWebViewプログレスバーが表示されない

import UIKit 
import WebKit 
class ViewController: UIViewController, WKNavigationDelegate { 
// Define Views 
var webView: WKWebView! 
var progressView: UIProgressView! 

override func loadView() { 
    // Load Initial WebView 
    webView = WKWebView() 
    webView.navigationDelegate = self 
    view = webView 
} 

override func viewDidLoad() { 
    super.viewDidLoad() 
    // Create Progress View 
    progressView = UIProgressView(progressViewStyle: .default) 
    progressView.sizeToFit() 
    let progressButton = UIBarButtonItem(customView: progressView) 
    toolbarItems = [progressButton] 
    navigationController?.isToolbarHidden = false 
    //Set and Load Initial URL 
    let url = URL(string: "https://shop.nygmarose.com/")! 
    webView.load(URLRequest(url: url)) 
    // Set WebView Config 
    webView.allowsBackForwardNavigationGestures = true 
    webView.scrollView.isScrollEnabled = true 
    webView.scrollView.bounces = true 
    // Allow Scroll to Refresh 
    let refreshControl = UIRefreshControl() 
    refreshControl.addTarget(self, action: #selector(ViewController.refreshWebView), for: UIControlEvents.valueChanged) 
    webView.scrollView.addSubview(refreshControl) 
    webView.addObserver(self, forKeyPath: #keyPath(WKWebView.estimatedProgress), options: .new, context: nil) 
} 

func refreshWebView() { 
    // On Scroll to Refresh, Reload Current Page 
    webView.reload() 
} 

override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) { 
    // Display Progress Bar While Loading Pages 
    if keyPath == "estimatedProgress" { 
     progressView.progress = Float(webView.estimatedProgress) 
    } 
} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
}} 
+0

私はそれがあなたのために働いている@iOSDevそれは完璧な@Musa –

+0

をウォーキングのCheckedしていますか?それは私の想像している私のxcodeエミュレータの問題かもしれない – Musa

答えて

0

私はあなたのコードをチェックして、それは完璧に働いて、ここでチェック出力

は私がより多くのために知っているようです。

enter image description here

+0

ありがとう、それは私のエミュレータで表示されていませんが、私の最後でなければなりません。 – Musa

関連する問題