web-dev-qa-db-ja.com

UIWebViewの背景はクリアカラーに設定されていますが、透明ではありません

IOS SDK最新バージョンとXCode 4.2を使用してiOS 4アプリケーションを開発しています。

XIBにUIWebViewがあり、Alpha = 1.0BackgroundClear 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デバイスでは灰色です。

どんな手掛かり?

140
VansFannel

また設定:

[webView setBackgroundColor:[UIColor clearColor]];
[webView setOpaque:NO];
357
Maulik
     /*for ios please set this*/

     [webViewFirst setOpaque:NO];

     /*for html please set this*/
     <body style="background:none">
15
dheerendra

WebViewの背景をクリアカラーに設定する以外に、opaqueをfalseに設定してください。

8
Elegia
webView.opaque = NO;

webView.backgroundColor = [UIColor clearColor];
3
Avinash651

このコードを試すことができます(安全ではないことは知っていますが、ios5でも動作します):

- (void)makeBodyBackgroundTransparent {
        for (UIView *subview in [webView subviews]) {
            [subview setOpaque:NO];
            [subview setBackgroundColor:[UIColor clearColor]];
        }
        [webView setOpaque:NO];
        [webView setBackgroundColor:[UIColor clearColor]];
}
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];
3
user5742417

目的のために

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

これをHTMLコードに必ず含めてください:

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

または

 <body style="background:none">
1
Amr Angry

最新のSwiftバージョン(必要に応じて):

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

不要な場合はデリゲート行を削除

0
RichAppz