【问题标题】:iphone uiwebview initial white viewiphone uiwebview 初始白色视图
【发布时间】:2010-03-28 01:51:58
【问题描述】:

我的应用程序的主视图有一个 uiwebview。在它有时间渲染应用程序生成的 HTML 之前,它是白色的。

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

Objective-C 或 MonoTouch 答案很好,我会说双语。

【问题讨论】:

  • 你在设置网页视图的背景颜色吗?
  • 我试过了,但是 web 视图首先出现,闪烁白色,然后变成我的颜色。

标签: iphone uiwebview


【解决方案1】:

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

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

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

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

【讨论】:

  • 尝试在 Interface Builder 中执行此操作对我不起作用,因此请记住这一点。上面的代码工作正常..
  • 如果您以编程方式实例化 uiwebview,这是完美的解决方案。谢谢
  • 还有助于将MainWindow.xib中窗口的背景颜色设置为白色到黑色。
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    我还不能发表评论,因此是答案。 @Steve,实际上可以使用情节提要。

    在 UIWebView 下放置一个 UIView 并:

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

    请记住,很多页面在通过 JS 加载后会获取内容,因此您仍然可以在几秒钟后留下一个白页

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

    【讨论】:

      【解决方案4】:

      补充史蒂夫马德森的答案(因为我还不能发表评论)。如果您在 Interface Builder 中实例化 UIWebView,您将无法将 alpha 设置为 0.0,但您可以调出颜色选择器来设置背景颜色(白色、黑色、灰色,没关系),然后设置该颜色的不透明度为零,并且有效。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-11
        • 2010-10-24
        • 2012-01-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多