我正在使用iOS SDK最新版本和XCode 4.2开发iOS 4应用程序。
我有一个UIWebView
的XIB, Alpha = 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>
在iOS 5模拟器上,它的背景是透明的,但在iOS 4设备上是灰色的。
有任何线索吗?
答案 0 :(得分:355)
同时设置:
[webView setBackgroundColor:[UIColor clearColor]];
[webView setOpaque:NO];
答案 1 :(得分:15)
/*for ios please set this*/
[webViewFirst setOpaque:NO];
/*for html please set this*/
<body style="background:none">
答案 2 :(得分:8)
除了将webview的背景设置为清晰颜色外,还要确保将opaque设置为false。
答案 3 :(得分:3)
你可以尝试这个代码(我知道,这是不安全的,但它甚至适用于ios5):
- (void)makeBodyBackgroundTransparent {
for (UIView *subview in [webView subviews]) {
[subview setOpaque:NO];
[subview setBackgroundColor:[UIColor clearColor]];
}
[webView setOpaque:NO];
[webView setBackgroundColor:[UIColor clearColor]];
}
答案 4 :(得分:3)
webView.opaque = NO;
webView.backgroundColor = [UIColor clearColor];
答案 5 :(得分:3)
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];
答案 6 :(得分:1)
目标
webView.opaque = NO;
webView.backgroundColor = [UIColor clearColor];
请务必将此信息包含在您的HTML代码中:
<body style="background-color: transparent;">
或
<body style="background:none">
答案 7 :(得分:0)
最新的Swift版本(根据需要):
lazy var webView: UIWebView = {
let view = UIWebView()
view.delegate = self
view.backgroundColor = .clear
view.isOpaque = false
return view
}()
如果不需要删除代理行