Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift wkwebView中显示两个进度 问题_Swift_Wkwebview - Fatal编程技术网

Swift wkwebView中显示两个进度 问题

Swift wkwebView中显示两个进度 问题,swift,wkwebview,Swift,Wkwebview,当我第一次使用以下代码加载WebView时,进度条工作正常,但当我在WebView中单击链接时,似乎看到两个进度条 class DetailViewController: UIViewController { private var wkWebView: WKWebView! let progressView = UIProgressView(progressViewStyle: .default) private var estimated

当我第一次使用以下代码加载WebView时,进度条工作正常,但当我在WebView中单击链接时,似乎看到两个进度条

class DetailViewController: UIViewController {
    
    private var wkWebView: WKWebView!
    
    let progressView = UIProgressView(progressViewStyle: .default)
    
    private var estimatedProgressObserver: NSKeyValueObservation?
    
    override func viewDidLoad() {
        super.viewDidLoad()

        setupWebView()
        load()
        setupProgressView()
        setupEstimatedProgressObserver()
    }
 


    func setupWebView() {
        let webConfig = WKWebViewConfiguration()
        wkWebView = WKWebView(frame: .zero, configuration: webConfig)
        wkWebView.uiDelegate = self
        wkWebView.navigationDelegate = self
    }


    private func setupProgressView() {
        guard let navigationBar = navigationController?.navigationBar else { return }

        progressView.translatesAutoresizingMaskIntoConstraints = false
        navigationBar.addSubview(progressView)

        progressView.isHidden = true

        NSLayoutConstraint.activate([
            progressView.leadingAnchor.constraint(equalTo: navigationBar.leadingAnchor),
            progressView.trailingAnchor.constraint(equalTo: navigationBar.trailingAnchor),

            progressView.bottomAnchor.constraint(equalTo: navigationBar.bottomAnchor),
            progressView.heightAnchor.constraint(equalToConstant: 2.0)
        ])
    }
    
    private func setupEstimatedProgressObserver() {
        estimatedProgressObserver = wkWebView.observe(\.estimatedProgress, options: [.new]) { [weak self] webView, _ in
            self?.progressView.progress = Float(webView.estimatedProgress)
        }
    }
}


// MARK: - WKNavigationDelegate
extension DetailViewController: WKNavigationDelegate {
    
  
    // 読み込み準備開始
    func webView(_ webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) {
        if progressView.isHidden {
            progressView.isHidden = false
        }

        UIView.animate(withDuration: 0.33, animations: {
            self.progressView.alpha = 1.0
        })
        print("読み込み準備開始")
    }

    // 読み込み完了
    func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
        UIView.animate(withDuration: 0.33,
                       animations: {
                           self.progressView.alpha = 0.0
                       },
                       completion: { isFinished in
                           self.progressView.isHidden = isFinished
        })
        print("読み込み完了")
    }
}
这里怎么了?谢谢你的帮助

环境
  • 迅捷5
  • iPhone SE(第二代)11.6版(921.9.1)
  • 代码11.6