UIWebView arka planı Net Renk olarak ayarlandı, ancak şeffaf değil


140

İOS SDK son sürümünü ve XCode 4.2 kullanarak bir iOS 4 uygulaması geliştiriyorum.

Alpha = 1.0UIWebView ile bir XIB var , arka plan açık renk için ayarlanmış ve opak ayarlanmadı. Bu XIB üzerinde ben bu kod ile arka plan olarak bir görüntü kurmak:

- (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;
}

UIWebViewBir statik html gösteriyor:

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

İOS 5 simülatöründe arka planı şeffaf, ancak iOS 4 cihazında gri.

Bir ipucu?


sadece arayüz oluşturucuda web görünümünüze bir UIImageView koymaya çalışın ve görüntünüzü ayarlayın.
Stas

Cevabınız için teşekkürler, ancak web görünümü tüm ekranı doldurmuyor.
VansFannel

Yanıtlar:


360

Ayrıca:

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

3
LoadHTMLString'i çağırdıktan sonra arka plan rengini ve opaklığı ayarladığımda bu benim için işe yarar. LoadHTMLString, bu değerlerin her ikisini de sıfırlar gibi görünüyor.
Justin Anderson

1
Sorunun iOS için olduğunu biliyorum, ancak OSX için bu soru ve cevap sorunu çözüyor ve iOS kullananlara da yardımcı olabilir.
Volomike

Bu çözüm hala iOS 12.1, Xcode 10.1 ve Swift'te çalışıyor.
Bhavin_m

15
     /*for ios please set this*/

     [webViewFirst setOpaque:NO];

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

9

Web görünümünüzün arka planını net renge ayarlamanın yanı sıra, opak değerini false olarak ayarladığınızdan emin olun.


Cevabınız için teşekkürler, ancak opak Interface Builder'da ayarlanmadı.
VansFannel

[Super viewDidLoad: animated] öğesini çağırdıktan sonra ayarlamayı deneyin; .
Elegia

Merhaba, ben aynı sorunu var .. ios5 üzerinde çalışır ama ios4 gri arka plan üzerinde çalışır. Bunu nasıl çözdün?
user542584

3
webView.opaque = NO;

webView.backgroundColor = [UIColor clearColor];

3

Bu kodu deneyebilirsiniz (güvensiz olduğunu biliyorum, ancak ios5 için bile çalışıyor):

- (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];

1

Amaç için

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

Lütfen bunu HTML kodunuza eklediğinizden emin olun:

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

veya

 <body style="background:none">

0

En Son Hızlı Sürüm (gerektiği gibi):

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

Gerekmiyorsa delege hattını kaldırın

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.