2017-07-10 10 views
0

以下xcode8インジケータビューが表示されないのはなぜですか?

でswift3使用するには、私のviewconroller.swiftあるのWebViewがロードされたときに、なぜ私のインジケータが表示されていない

class ViewController: UIViewController { 
    @IBOutlet weak var YahooWebview: UIWebView! 
    @IBOutlet weak var activity: UIActivityIndicatorView! 


    override func viewDidLoad() { 
     super.viewDidLoad() 
     let YURL = URL(string: "http://www.yahoo.com") 
     let YURLRequest = URLRequest(url: YURL!) 
     YahooWebview.loadRequest(YURLRequest) 
    } 
} 

func webViewDidStartLoad(YahooWebview: UIWebView) { 
    activity.startAnimating() 
} 

func webViewDidFinishLoad(YahooWebview: UIWebView) { 
    print("show indicator") 
    activity.stopAnimating() 
} 

? Xcodeのログから文字列 "show indicator"が表示されないことがあります。あなたは

YahooWebview.delegate = self 

などのUIWebViewの代理人としてあなたのクラスを設定する必要が

+0

代理人を追加:YahooWebview.delegate = self –

+0

Webビューの代理人をInterface Builderでコントローラに接続します。 – rmaddy

+0

webview 'self.view.bringSubviewToFront(activity)'の後ろからゲットアウトしよう – byJeevan

答えて

0

は代表者と委任パターンに関する詳細を得るために、私answerを確認してください。アップルの開発者から

注:iOSの8で動作するアプリで以降では、代わりにUIWebViewを使用しての WKWebViewクラスを使用します。さらに、JavaScriptを実行しないファイルをレンダリングする場合は、WKPreferencesプロパティjavaScriptEnabledをfalseに設定することを検討してください。

0

コメントに記載されているように2つの問題があります。

どちらもStroyboard/xibファイルで解決できます。

  1. UIActivityIndicatorViewは、UIWebViewの後ろに隠れている可能性があります。ビューの階層構造の上に来るように、ビューの位置を変更するだけです。

  2. UIWebviewクラスのデリゲートプロパティをViewControllerとして設定していない可能性があります。 webviewを右クリックしてチェックします。これは、デリゲートメソッド内でアクティビティインジケータビューをアニメートするときに設定する必要があります。

関連する問題