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.