質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

0回答

720閲覧

swift:NVActivityIndi​​catorViewがWebViewの読み込み中に表示されない

KanPiko

総合スコア15

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2020/01/11 07:02

前提・実現したいこと

swiftでwebviewを使用したアプリを開発しています。
現在、webviewを表示できているのですが読み込み中のアニメーションが無かったので、
NVActivityIndi​​catorViewというライブラリを使用してインジケーターを追加しました。
ですが、読み込み中にインジケーターが表示されませんでした。
特にエラーは無いのですが、インジケーターが非表示のままでwebviewが表示されてしまうのは何が原因なのでしょうか。

該当のソースコード

swift

1 2class MainViewController: UIViewController, UINavigationBarDelegate, WKNavigationDelegate, WKUIDelegate{ 3 4 @IBOutlet weak var navigationBar: UINavigationBar! 5 @IBOutlet weak var activityIndicatorView: NVActivityIndicatorView! 6 7 var argString = "https://www.google.com/" 8 let configuration = WKWebViewConfiguration() 9 let processPool = WKProcessPool() 10 var webView: WKWebView! 11 12 override func viewWillAppear(_ animated: Bool) { 13 super.viewWillAppear(animated) 14 15 navigationBar.delegate = self 16 configuration.processPool = processPool 17 self.webView = WKWebView(frame: CGRect(x: 0, y: 85, width:self.view.bounds.width, height: self.view.bounds.height-85), configuration: configuration) 18 self.view.addSubview(webView) 19 openUrl(urlString: argString) 20 self.webView.navigationDelegate = self 21 22 } 23 24 25 override func viewDidLoad() { 26 super.viewDidLoad() 27 // Do any additional setup after loading the view. 28 } 29 30 // MARK: - 読み込み準備開始 31 func webView(_ webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) { 32 print("読み込み準備開始") 33 activityIndicatorView.startAnimating() 34 35 36 } 37 // MARK: - 読み込み開始 38 func webView(_ webView: WKWebView, didCommit navigation: WKNavigation!) { 39 print("読み込み開始") 40 41 } 42 43 // MARK: - 読み込み完了 44 func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) { 45 print("読み込み完了") 46 activityIndicatorView.stopAnimating() 47 } 48 49 // MARK: - 読み込み失敗検知 50 func webView(_ webView: WKWebView, didFailProvisionalNavigation navigation: WKNavigation!, withError: Error) { 51 print("読み込み失敗検知") 52 } 53 54 // MARK: - 読み込み失敗 55 func webView(_ webView: WKWebView, didFail navigation: WKNavigation!, withError: Error) { 56 print("読み込み失敗") 57 } 58 59 // MARK: - リダイレクト 60 func webView(_ webView: WKWebView, didReceiveServerRedirectForProvisionalNavigation:WKNavigation!) { 61 print("リダイレクト") 62 } 63 64 override func viewDidDisappear(_ animated: Bool) { 65 super.viewDidDisappear(animated) 66 webView.removeFromSuperview() 67 print("remove") 68 } 69 70 func openUrl(urlString: String) { 71 let url = URL(string: urlString) 72 let urlRequest = URLRequest(url: url!) 73 self.webView.load(urlRequest) 74 print("open") 75 } 76 77 78 79 @objc func refreshWebView(sender: UIRefreshControl) { 80 webView.reload() 81 sender.endRefreshing() 82 } 83 84 override func didReceiveMemoryWarning() { 85 super.didReceiveMemoryWarning() 86 // Dispose of any resources that can be recreated. 87 } 88 89 90}

試したこと

NVActivityIndi​​catorViewはstoryboardのViewで作成しました。
インジケーターの開始と終了は、webviewの読み込み準備時に"activityIndicatorView.startAnimating()"、読み込み完了時に"activityIndicatorView.stopAnimating()"
を実装しました。
インジケーターがwebviewよりも下層にあるのではと思い"self.view.bringSubviewToFront()"を実行したのですが表示されませんでした。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

akaakoz

2020/01/12 13:46

NVActivityIndi​​catorViewのconstraintはストーリーボードで設定してますか?
KanPiko

2020/01/12 14:38

ご回答ありがとうございます。 constraintはストーリーボードで設定しています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問