如何制作透明的UIWebView

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

我试图在IB中设置UIWebView的不透明度为零,但是没有帮助。

你可以帮我吗?

我build议:

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

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

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

 <body style="background-color: transparent;"> 

使用下面的recursion方法从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]; } } 

Swift更新:

 webView.opaque = true webView.backgroundColor = UIColor.clearColor() 

再次,不要忘记设置

 <body style="background-color: transparent"> 

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

 body { background-color: transparent } 

在XCode 6.x中取消选中不透明 ,并将背景的不透明度更改为0% 。 我认为其他的XCode版本也可以工作。 在这里输入图像说明

对于Swift 3和Xcode 8

 self.webView.isOpaque = false; self.webView.backgroundColor = UIColor.clear 

通过转到“属性检查器”并取消选中“绘图不透明”,我能够使UIWebView变透明。

我的HTML代码仅供参考。

  UIWebView* webView =(UIWebView *) [cell viewWithTag:100]; NSString* htmlContentString = [NSString stringWithFormat: @"<html>" "<style type='text/css'>html,body {margin: 0;padding: 0;width: 100%%;height: 100%%;}</style>" "<body>" "<table style='border:1px solid gray; border-radius: 5px; overflow: hidden;color:white;font-size:10pt' cellspacing=\"0\" cellpadding=\"1\" align='right'><tr>" "<td>Hello</td><td>There</td>" "</tr></table>" "</body></html>" ]; [webView loadHTMLString:htmlContentString baseURL:nil]; 

要删除卷轴并使UIWebView透明,请尝试下面的代码:

 webView.opaque = NO; webView.backgroundColor = [UIColor clearColor]; for(UIView *view in webView.subviews){   if ([view isKindOfClass:[UIImageView class]]) {      // to transparent      [view removeFromSuperview];   }   if ([view isKindOfClass:[UIScrollView class]]) {      UIScrollView *sView = (UIScrollView *)view;      //to hide Scroller bar      sView.showsVerticalScrollIndicator = NO; sView.showsHorizontalScrollIndicator = NO;      for (UIView* shadowView in [sView subviews]){         //to remove shadow         if ([shadowView isKindOfClass:[UIImageView class]]) {            [shadowView setHidden:TRUE];         }      }   } }