2017-11-06 26 views
0

私の目標は、WebViewがまだサーバーからデータをフェッチしているときにアクティビティインジケータを表示することです。loadRequestにクロージャを追加するにはどうすればよいですか?

私はそうする方法が見つけられません。私が考えることができる唯一の方法は閉鎖ですが、そうする方法はありますか?

アクティビティインジケータを追加しないと、白い画面が空白になり、一定時間が経過するとウェブページが表示されます。それは良いユーザーエクスペリエンスではありません。

ここでコード

import UIKit 

class SignupWebViewController: UIViewController { 

    @IBOutlet var signupWebView: UIWebView! 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     let url = URL(string: "http://www.example.com/merchants/signup") 

     // How Do i do a closure here? 
     signupWebView.loadRequest(URLRequest(url: url!)) 

    } 
} 

答えて

2

はあなたがUIWebViewDelegateメソッドを実装する必要があります。

signupWebView.delegate = self; 

をそして

class SignupWebViewController: UIViewController, UIWebViewDelegate { 

はその後、この方法には、あなたのロジックを追加するのViewControllerにこれを追加することを忘れないでください:負荷要求する前に、これを行う

optional public func webViewDidStartLoad(_ webView: UIWebView) { 
    // show your activity indicator 
} 

optional public func webViewDidFinishLoad(_ webView: UIWebView) { 
    // hide your activity indicator 
} 

をすることでwayでは、UIWebViewは廃止されました。代わりにWKWebViewを使用してください。

関連する問題