IOS SDK最新バージョンとXCode 4.2を使用してiOS 4アプリケーションを開発しています。
XIBにUIWebView
があり、Alpha = 1.0、BackgroundClear 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
}()
不要な場合はデリゲート行を削除