UIWebView पृष्ठभूमि रंग साफ़ करने के लिए सेट है, लेकिन यह पारदर्शी नहीं है


140

मैं iOS SDK नवीनतम संस्करण और XCode 4.2 का उपयोग करके iOS 4 एप्लिकेशन विकसित कर रहा हूं।

मैं एक के साथ एक XIB है UIWebViewसाथ अल्फा = 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 डिवाइस पर ग्रे है।

कोई सुराग?


इंटरफ़ेस बिल्डर में अपने वेबव्यू पर UIImageView डालने की कोशिश करें और इसे अपनी छवि सेट करें।
Stas

आपके उत्तर के लिए धन्यवाद, लेकिन वेब दृश्य पूरी स्क्रीन को नहीं भरता है।
VansFannel

जवाबों:


360

यह भी सेट करें:

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

3
यह केवल मेरे लिए काम करता है अगर मैं loadHTMLString को कॉल करने के बाद पृष्ठभूमि का रंग और अपारदर्शिता निर्धारित करता हूं। ऐसा लगता है कि loadHTMLString उन दोनों मानों को रीसेट करता है।
जस्टिन एंडरसन

1
मुझे पता है कि सवाल iOS के लिए था, लेकिन अगर OSX के लिए, यह सवाल और जवाब समस्या का समाधान करता है और iOS वाले भी मदद कर सकता है।
Volomike

यह समाधान अभी भी iOS 12.1, Xcode 10.1 और स्विफ्ट में काम कर रहा है।
भाविन_म

15
     /*for ios please set this*/

     [webViewFirst setOpaque:NO];

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

9

रंग साफ़ करने के लिए अपने वेबव्यू की पृष्ठभूमि सेट करने के अलावा, यह भी सुनिश्चित करें कि आपने असत्य को गलत पर सेट किया है।


आपके उत्तर के लिए धन्यवाद, लेकिन इंटरफ़ेस बिल्डर पर अपारदर्शी सेट नहीं है।
VansFannel

[सुपर व्यूडीडलड: एनिमेटेड] को कॉल करने के बाद इसे सेट करने का प्रयास करें; ।
एलिगिया

नमस्ते, मैं एक ही मुद्दा है .. ios5 पर आतिशबाजी लेकिन ios4 पर ग्रे पृष्ठभूमि। आपने इसे कैसे ठीक किया?
user542584


3

आप इस कोड को आज़मा सकते हैं (मुझे पता है, कि यह असुरक्षित है, लेकिन यह 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];

1

उद्देश्य के लिए

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

कृपया इसे अपने HTML कोड में शामिल करना सुनिश्चित करें:

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

या

 <body style="background:none">

0

नवीनतम स्विफ्ट संस्करण (आवश्यकतानुसार):

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

आवश्यकता न होने पर प्रतिनिधि लाइन निकालें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.