UIWebView背景设置为“清除颜色”,但它不透明

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UIWebView背景设置为“清除颜色”,但它不透明相关的知识,希望对你有一定的参考价值。

我正在使用ios SDK最新版本和XCode 4.2开发iOS 4应用程序。

我有一个带有alpha = 1.0的UIWebView的XIB,背景设置为Clear Color,而Opaque未设置。在这个XIB上,我使用以下代码将图像设置为背景:

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        UIColor *background = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"AboutBackground.png"]];
        self.view.backgroundColor = background;
        [background release];
    }
    return self;
}

UIWebView显示静态html

<html><head></head><body style="margin:0 auto;text-align:center;background-color: transparent; color:white">...</body></html>

在iOS 5模拟器上,它的背景是透明的,但在iOS 4设备上是灰色的。

任何线索?

答案

还设置:

[webView setBackgroundColor:[UIColor clearColor]];
[webView setOpaque:NO];
另一答案
     /*for ios please set this*/

     [webViewFirst setOpaque:NO];

     /*for html please set this*/
     <body style="background:none">
另一答案

除了将webview的背景设置为清晰颜色外,还要确保将opaque设置为false。

另一答案
webView.opaque = NO;

webView.backgroundColor = [UIColor clearColor];
另一答案

你可以尝试这个代码(我知道,这是不安全的,但它甚至适用于ios5):

- (void)makeBodyBackgroundTransparent {
        for (UIView *subview in [webView subviews]) {
            [subview setOpaque:NO];
            [subview setBackgroundColor:[UIColor clearColor]];
        }
        [webView setOpaque:NO];
        [webView setBackgroundColor:[UIColor clearColor]];
}
另一答案
NSString *content=@"example clear background color UIWebview";
NSString *style=[NSString stringwithformat:@"<html><head><style>body {background-color:transparent;}</style></head><body>%@</body></html>",content];
[myWebview loadhtmlstring:style baseurl:nil];
另一答案

对于目标

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

请确保将其包含在您的HTML代码中:

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

要么

 <body style="background:none">
另一答案

最新的Swift版本(根据要求):

lazy var webView: UIWebView = {
    let view = UIWebView()
    view.delegate = self
    view.backgroundColor = .clear
    view.isOpaque = false
    return view
}()

如果不需要,删除委托行

以上是关于UIWebView背景设置为“清除颜色”,但它不透明的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS 应用程序中为 iFrame 设置透明背景?

uitableviewcell 背景色变为clearcolor

设置 UIWebview 的框架

iOS:当视图背景颜色为清晰颜色时,图层背景颜色不显示

UIWebView 旋转和背景颜色

UISlider 最小和最大轨道色调清除颜色 iOS 7.1 错误