2010-03-28 34 views
7

我的應用程序的主視圖有一個uiwebview。在它有時間呈現應用程序生成的HTML之前,它是白色的。iphone uiwebview初始白色視圖

有沒有辦法使uiwebview黑色或其他顏色呈現之前?白色的閃光不是我的順利視覺過渡計劃的一部分。

Objective-C或MonoTouch的答案都很好,我是雙語言的。

+0

你是否設置web視圖的backgroundColor? – 2010-03-28 02:35:40

+0

我試過了,但網頁視圖第一次出現,閃爍白色,然後轉到我的顏色。 – 2010-03-28 11:17:36

回答

3

你可以嘗試的一件事是放置一個UIView與你想要的顏色,並將其放置在UIWebView上方具有相同的寬度和高度。然後在webViewDidFinishLoad方法中,將UIView設置爲隱藏。

31

另一件事是嘗試以使視圖透明:

webView.backgroundColor = [UIColor clearColor]; 
webView.opaque = NO; 

這將導致更多的合成工作,但是,這樣你就可以在你的Web視圖加載後這些值的東西,更多的友好復位,在webViewDidFinishLoad:

- (void) webViewDidFinishLoad:(UIWebView *)webView 
{ 
    webView.backgroundColor = [UIColor blackColor]; 
    webView.opaque = YES; 
} 
+0

試圖在界面生成器中做到這一點不適合我,所以記住這一點。上面的代碼工作正常.. – phi 2011-02-10 14:36:01

+1

這是一個完美的解決方案,如果您以編程方式實例化uiwebview。謝謝 – Andreas 2011-11-03 11:59:26

+0

也有助於將MainWindow.xib中窗口的背景顏色從白色設置爲黑色。 – neoneye 2011-11-03 14:21:51

0

我不能評論,因此答案。 @Steve,實際上它可以處理故事板。

放置UIWebView的下一個UIView和:

// Can be set in the storyboard 
bottomView.backgroundColor = [UIColor yellowColor]; 
webview.alpha = 0; 

請記住,很多頁面通過JS被加載後取東西,所以你仍然可以用一個白色的頁面幾秒鐘

後離開
- (void) webViewDidFinishLoad:(UIWebView *)webView 
{ 
    webView.alpha = 1; 
} 
0

添加到Steve Madsen的答案(因爲我還不能評論)。如果你在Interface Builder中實例化了UIWebView,你將無法將alpha設置爲0.0,但你可以做的是調出顏色選擇器來設置背景顏色(白色,黑色,灰色,沒關係),然後設置該顏色的不透明度爲零,這是有效的。