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

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

我有一个 XIB 与 UIWebViewΑ = 1.0背景资料设置为 净色不透明没有设置。在这个 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>

在 iOS5模拟器上,它的背景是透明的,但在 iOS4设备上是灰色的。

有线索吗?

73377 次浏览

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

另设:

[webView setBackgroundColor:[UIColor clearColor]];
[webView setOpaque:NO];

你可以试试这个代码(我知道它不安全,但是它甚至可以在 ios5中使用) :

- (void)makeBodyBackgroundTransparent {
for (UIView *subview in [webView subviews]) {
[subview setOpaque:NO];
[subview setBackgroundColor:[UIColor clearColor]];
}
[webView setOpaque:NO];
[webView setBackgroundColor:[UIColor clearColor]];
}

     /*for ios please set this*/


[webViewFirst setOpaque:NO];


/*for html please set this*/
<body style="background:none">
webView.opaque = NO;


webView.backgroundColor = [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
}()

如果不需要,删除委托行