

以下のコードでwebviewの初回読み込み時には、progress barが意図した動きになるのですが、webview内のリンクをふむとprogress
barが２つ表示されているように見えてしまいます。  
どなたかおわかりになる方はいらっしゃいませんでしょうか？

[![](https://i.stack.imgur.com/GDzTd.png)](https://i.stack.imgur.com/GDzTd.png)

[code]

    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("読み込み完了")
        }
    }
    
[/code]

### 環境

Swift5  
iPhone SE(2nd generation) Version 11.6 (921.9.1)  
xcode 11.6


CC BY-SA 4.0
2020-09-15T13:33:02.703
70417
2020-09-16T10:10:39.873
40865
question
swift ios wkwebview
wkwebViewでProgressが２つ表示されてしまう


下側の少し薄い色のプログレスバーはWebサイト側が表示しているものに見えます。  
なのでコードは期待したとおりに動いていると思いますが、Webサイト側も独自のプログレスバーを表示しているために、結果的に2つ出てしまっている「ように見える」のだと思います。  
別のWebサイトを表示しても現象は変わりませんか？


CC BY-SA 4.0
2020-09-16T10:10:39.873
70449
2020-09-16T10:10:39.873
5519
70417
answer