如何制作透明的UIWebView

Kno*_*del 116 iphone cocoa-touch uiwebview ios

我有一个应用程序,UITableView每行有一个相应的详细视图.在详细视图中,我必须显示一些文本和背景图像(每行的文本不同,但图像保持不变).在我看来,最简单的方法是将文本放在.rtf文件中并将其显示在UIWebView.然后就把它放在UIImageView后面UIWebView.

我试图UIWebView在IB中将不透明度设置为零,但它没有帮助.

你能帮助我吗?

Ort*_*ntz 302

我建议:

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

(在Interface Builder中设置这些属性适用于iOS 5.0+,但对于iOS 4.3,您必须在代码中设置backgroundColor )

并将其包含在您的HTML代码中:

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

  • `<body style ="background-color:transparent;">`似乎是可选的,至少在最近的iOS版本中是这样. (2认同)

Nil*_*ani 21

使用下面的递归方法从UIWebView中删除渐变:

[webView setBackgroundColor:[UIColor clearColor]];
[self hideGradientBackground:webView];


- (void) hideGradientBackground:(UIView*)theView
{
  for (UIView * subview in theView.subviews)
  {
    if ([subview isKindOfClass:[UIImageView class]])
      subview.hidden = YES;

    [self hideGradientBackground:subview];
  }
}
Run Code Online (Sandbox Code Playgroud)


kmi*_*las 7

Swift更新:

webView.opaque = true
webView.backgroundColor = UIColor.clearColor()
Run Code Online (Sandbox Code Playgroud)

再次,不要忘记设置

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

或者更好的是,在样式表中,而不是内联样式:

body {
     background-color: transparent
}
Run Code Online (Sandbox Code Playgroud)


Mus*_*ari 5

对于Swift 3和Xcode 8

self.webView.isOpaque = false;
self.webView.backgroundColor = UIColor.clear
Run Code Online (Sandbox Code Playgroud)