如何控制UIWebView的颜色(在内容加载之前)?

Rex*_*ids 10 iphone xcode objective-c uiwebview uiview

我试图在其内容加载之前有一个黑色的UIWebView.在IB中,我尝试将UIWebView的背景颜色设置为黑色,以及使其具有透明背景并使其父视图的背景为黑色.两者都不起作用.当我的UIWebView加载背景时它是白色的.我怎样才能解决这个问题?

*我希望这不能归结为必须首先加载一个html字符串(在加载我的实际网页内容之前)以将背景设置为黑色对CSS.

小智 25

我这样做的方法是将UIWebView放在黑色视图上.然后,我们将网页和webview设置为清晰.适用于iOS 4.2.

在超级视图上:

view.backgroundColor = [UIColor blackColor];
Run Code Online (Sandbox Code Playgroud)

在webView上:

webView.opaque = NO;
webView.backgroundColor = [UIColor clearColor];
Run Code Online (Sandbox Code Playgroud)

在Web HTML中:

<body style="background-color:transparent;">
Run Code Online (Sandbox Code Playgroud)

  • webView.opaque = NO; webView.backgroundColor = [UIColor clearColor]; 为我工作!谢谢 (5认同)

zon*_*ble 11

实际上设置背景颜色不能使Web视图全黑.Web页面的内容显示在Web视图的子视图中,Web视图包含许多未记录的子视图,包括允许您滚动内容的UIScrollView,以及包含UIWebDocumentView的UIScrollView,它绘制Web内容.它们位于Web视图的背景之上,因此它们覆盖了背景,您可以看到的是UIWebDocumentView,并且设置背景颜色无法使您的Web视图全黑.

我想解决的办法是,你可能会尝试把一个黑色的视图在你的Web视图,并隐藏视图的委托方法比如当webViewDidFinishLoad:或者webViewDidStartLoad:被调用.

  • 内存较少的解决方案是在viewwillappear或didstartload/didfinishload上隐藏/显示webview本身(这实际上是我这样做的方式). (6认同)
  • [webView setOpaque:NO]; (4认同)

smi*_*Bot 11

实际上,这很简单:

[self.webView setOpaque:NO];
self.webView.backgroundColor = [UIColor purpleColor];
Run Code Online (Sandbox Code Playgroud)

这将显示背景颜色,一旦webview加载,它就会愉快地消失.