iphone uiwebview初始白视图

时间:2010-03-28 01:51:58

标签: iphone uiwebview

我的应用主视图有一个uiwebview。在有时间呈现应用生成的HTML之前,它是白色的瞬间。

有没有办法让uiwebview在呈现之前变成黑色或其他颜色?白色闪光不是我平滑视觉过渡计划的一部分。

Objective-C或MonoTouch的答案很好,我是双语的。

4 个答案:

答案 0 :(得分:31)

要尝试的另一件事是使视图透明:

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

这会导致额外的合成工作,因此您可以在webViewDidFinishLoad:加载Web视图后将这些值重置为更友好的值。

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

答案 1 :(得分:3)

您可以尝试的一件事是使用您想要的颜色放置UIView,并将其放置在UIWebView上方,具有相同的宽度和高度。然后在webViewDidFinishLoad方法中,将UIView设置为hidden。

答案 2 :(得分: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;
}

答案 3 :(得分:0)

添加史蒂夫·马德森的回答(因为我还没有发表评论)。如果你在Interface Builder中实例化UIWebView,你将无法将alpha设置为0.0,但你可以做的是调出颜色选择器来设置背景颜色(白色,黑色,灰色,无关紧要),然后设置该颜色的不透明度为零,这是有效的。