如何制作透明的UIWebView

时间:2010-09-05 17:09:47

标签: ios iphone cocoa-touch uiwebview

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

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

你能帮助我吗?

8 个答案:

答案 0 :(得分:301)

我建议:

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

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

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

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

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

答案 2 :(得分:7)

快速更新:

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

再次,不要忘记设置

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

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

body {
     background-color: transparent
}

答案 3 :(得分:5)

适用于Swift 3和Xcode 8

<a href="https://www.jspell.com/public-spell-checker.html"><img src="http://s7d2.scene7.com/is/image/PetSmart/SV0401_CATEGORY_HERO-Dog-Cat-20160818?$SV0402$" onmouseover="http://cdn1-www.dogtime.com/assets/uploads/2011/01/file_22928_greater-swiss-mountain-dog-460x290.jpg'" onmouseout="this.src='http://s7d2.scene7.com/is/image/PetSmart/SV0401_CATEGORY_HERO-Dog-Cat-20160818?$SV0402$"></a>

答案 4 :(得分:4)

在XCode 6.x中取消选中不透明并将背景的不透明度更改为 0%。我认为其他XCode版本也可以使用。enter image description here

答案 5 :(得分:3)

我可以通过转到“属性检查器”并取消选中“绘制不透明”来使我的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];

答案 6 :(得分:0)

要移除滚动条并使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];  
               }  
          }  
     }   
}  

答案 7 :(得分:0)

在Swift 4.x中,

webView.backgroundColor = .clear
openSourceLicensesWebView.isOpaque = false