2017-02-20 33 views
0

我有一個LaunchImage資源用於顯示啓動屏幕。我的問題是在啓動映像消失後,我的初始視圖控制器的webview開始加載內容。如何顯示啓動圖像,直到我的web視圖加載結束?

那麼,如何顯示我的啓動圖像,直到我的webview加載結束?

我的配置:

enter image description here

enter image description here

+0

http://stackoverflow.com/questions/5618163/displaying-splash-screen-for-longer-than-default-seconds。檢查這一個。 –

回答

2

您不能修改啓動屏幕定時器或任何有關 「多久它應該顯示」。它不在你的控制之下。

1:委託方法添加到您的UIWebViewwebViewDidFinishLoad(_:)

2:顯示你的「啓動畫面」的副本作爲一個UIImageView或自定義UIView。並且hide它在委託方法觸發完成加載時。

注意在在iOS 8的運行和以後的應用程序,使用WKWebView類 而不是使用一個UIWebView的。此外,如果您呈現不應該運行JavaScript的文件 ,請考慮將 WKPreferences屬性javaScriptEnabled設置爲false。

對於WKWebView代表:

webView(_:didFinish:)

+0

謝謝。但是我的方法有另一個問題:如何將我的啓動圖像資源轉換爲適合不同屏幕尺寸的適當圖像資源?是否可以顯示帶圖像視圖的啓動圖像資源? – Sayakiss

+0

@Sayakiss如果你創建一個自定義的UIView,添加與你的啓動畫面相同的圖像,並添加一個UIActivityIndi​​cator來顯示該視圖正在加載,否則用戶可能會認爲它已經崩潰或被卡住。 – 2017-02-20 09:29:40

+0

'添加與啓動畫面相同的圖像':您知道,圖像資源僅附帶3張圖像(1x,2x,3x),但啓動圖像資源中有超過10張圖像,如何選擇適當的圖像爲不同的屏幕尺寸? – Sayakiss

0

您不必即將投放appearence時間控制。但是你可以用相同的啓動映像創建自己UIImageView覆蓋屏幕,並刪除它一旦UIWebView加載完成

+0

謝謝。但是我的方法有另一個問題:如何將我的啓動圖像資源轉換爲適合不同屏幕尺寸的適當圖像資源?是否可以顯示帶圖像視圖的啓動圖像資源? – Sayakiss

+0

如果它的圖像文件或xib可以完全按照它在啓動屏幕中使用的那樣使用它。啓動屏幕只是一個顯示圖像的視圖。所以只是模仿相同。關於屏幕尺寸,如果啓動圖像適合它們,那麼它將適合手動操作。 – giorashc

+0

'如果它是一個圖像文件或xib':它是'LaunchImage'資源(參見我的問題中的圖片) – Sayakiss

0

你應該嘗試的UIWebView委託方法: -

- (void)webViewDidStartLoad:(UIWebView *)webView 
- (void)webViewDidFinishLoad:(UIWebView *)webView 

而且使用的UIImageView(其中包含你的啓動圖像),不斷顯示,直到你的UIWebView完全加載。

0

如果您不想爲啓動屏幕創建單獨的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) 

但是,請注意,這不是一個很好的做法,因爲您應該讓用戶知道該應用程序實際上正在執行某些操作。考慮顯示某種加載微調器或類似的東西。

相關問題