我有一個LaunchImage資源用於顯示啓動屏幕。我的問題是在啓動映像消失後,我的初始視圖控制器的webview
開始加載內容。如何顯示啓動圖像,直到我的web視圖加載結束?
那麼,如何顯示我的啓動圖像,直到我的webview加載結束?
我的配置:
我有一個LaunchImage資源用於顯示啓動屏幕。我的問題是在啓動映像消失後,我的初始視圖控制器的webview
開始加載內容。如何顯示啓動圖像,直到我的web視圖加載結束?
那麼,如何顯示我的啓動圖像,直到我的webview加載結束?
我的配置:
您不能修改啓動屏幕定時器或任何有關 「多久它應該顯示」。它不在你的控制之下。
1:委託方法添加到您的UIWebView
webViewDidFinishLoad(_:)
2:顯示你的「啓動畫面」的副本作爲一個UIImageView
或自定義UIView
。並且hide
它在委託方法觸發完成加載時。
注意在在iOS 8的運行和以後的應用程序,使用WKWebView類 而不是使用一個UIWebView的。此外,如果您呈現不應該運行JavaScript的文件 ,請考慮將 WKPreferences屬性javaScriptEnabled設置爲false。
對於WKWebView
代表:
您不必即將投放appearence時間控制。但是你可以用相同的啓動映像創建自己UIImageView
覆蓋屏幕,並刪除它一旦UIWebView
加載完成
你應該嘗試的UIWebView
委託方法: -
- (void)webViewDidStartLoad:(UIWebView *)webView
- (void)webViewDidFinishLoad:(UIWebView *)webView
而且使用的UIImageView(其中包含你的啓動圖像),不斷顯示,直到你的UIWebView完全加載。
如果您不想爲啓動屏幕創建單獨的UIImageView「類似」,則可以將視圖控制器實例化爲啓動屏幕並使用它。
let sb = UIStoryboard(name: "Launch Screen", bundle: nil) // the storyboard of your launch screen
let vc = sb.instantiateViewController(withIdentifier: "launchScreen") // the storyboard id (remember to set it first!)
// present the vc
navigationController?.present(vc, animated: false, completion: nil)
// when you're done loading
vc.dismiss(animated: false, completion: nil)
但是,請注意,這不是一個很好的做法,因爲您應該讓用戶知道該應用程序實際上正在執行某些操作。考慮顯示某種加載微調器或類似的東西。
http://stackoverflow.com/questions/5618163/displaying-splash-screen-for-longer-than-default-seconds。檢查這一個。 –