पारदर्शी UIWebView कैसे बनाएं


117

मेरे पास एक ऐप है UITableViewऔर प्रत्येक पंक्ति के लिए एक विस्तृत विवरण है। विस्तार से देखने के लिए मुझे कुछ पाठ और एक पृष्ठभूमि छवि प्रदर्शित करनी होगी (पाठ प्रत्येक पंक्ति के लिए अलग है, लेकिन छवि समान है)। सबसे आसान तरीका है, मेरी राय में, टेक्स्ट को एक .rtf फ़ाइल में रखना और इसे एक में प्रदर्शित करना है UIWebView। फिर बस के UIImageViewपीछे लगा दिया UIWebView

मैं UIWebViewआईबी में शून्य करने के लिए अस्पष्टता निर्धारित करने की कोशिश की है , लेकिन यह मदद नहीं की।

क्या आप मेरी मदद कर सकते हैं?

जवाबों:


302

मेरा सुझाव है:

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

(इंटरफ़ेस बिल्डर में इन गुणों की स्थापना iOS के लिए 5.0+ काम करेंगे, लेकिन iOS 4.3 के लिए आप पृष्ठभूमि रंग सेट करना होगा कोड में )

और इसे अपने HTML कोड में शामिल करें:

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

आईओएस 5. कम से कम सिम्युलेटर में काम करता है।
जेसन मैक्कार्सी

1
मैं IB में अपारदर्शिता और बैकग्राउंडर सेट करने में सक्षम था। मेरे लिए स्टाइल टैग वही था जो मुझे काम करने से रोक रहा था।
devinfoley 16

यदि आप इन स्ट्रिंग्स को केवल कोड के रूप में लिखते हैं तो यह 4.2.1 के लिए काम करता है। यदि आप iterface बिल्डर में एक ही विकल्प सेटअप करते हैं तो आपको एक पारदर्शी पृष्ठभूमि नहीं मिलेगी
Gargo

2
<body style="background-color: transparent;">, वैकल्पिक प्रतीत हो रहा है कम से कम हाल ही में iOS संस्करण में।
zeroimpl

21

UIWebView से ग्रेडिएंट निकालने के लिए नीचे दिए गए पुनरावर्ती विधि का उपयोग करें:

[webView setBackgroundColor:[UIColor clearColor]];
[self hideGradientBackground:webView];


- (void) hideGradientBackground:(UIView*)theView
{
  for (UIView * subview in theView.subviews)
  {
    if ([subview isKindOfClass:[UIImageView class]])
      subview.hidden = YES;

    [self hideGradientBackground:subview];
  }
}

webView.opaque = NO लिखना न भूलें;
नीलेश कीकानी

1
उह, हम यहां किस "ढाल" के बारे में बात कर रहे हैं?
ग्रेग मैलैटिक

7

स्विफ्ट अपडेट:

webView.opaque = true
webView.backgroundColor = UIColor.clearColor()

और फिर, सेट करने के लिए मत भूलना

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

या इनलाइन स्टाइल के बजाय अपनी स्टाइल शीट में बेहतर है:

body {
     background-color: transparent
}

1
मुझे बॉडी स्टाइल सेट करने की ज़रूरत नहीं थी। लेकिन मुझे कोड में पृष्ठभूमि का रंग और अपारदर्शी सेट करना पड़ा।
Andrej


4

XCode 6.x में Opaque को अनचेक करें और बैकग्राउंड की अपारदर्शिता को 0% में बदलें । मुझे लगता है कि अन्य XCode संस्करण भी काम करेंगे।यहां छवि विवरण दर्ज करें


3

मैं 'यूट्यूब्स इंस्पेक्टर' और ड्रॉइंग ओपेक को अनचेक करके अपने UIWebView को पारदर्शी बनाने में सक्षम था।

मेरा HTML कोड सिर्फ संदर्भ के लिए।

    UIWebView* webView =(UIWebView *) [cell viewWithTag:100];
    NSString* htmlContentString = [NSString stringWithFormat:
                                   @"<html>"
                                   "<style type='text/css'>html,body {margin: 0;padding: 0;width: 100%%;height: 100%%;}</style>"
                                   "<body>"
                                   "<table style='border:1px solid gray; border-radius: 5px; overflow: hidden;color:white;font-size:10pt' cellspacing=\"0\" cellpadding=\"1\" align='right'><tr>"
                                   "<td>Hello</td><td>There</td>"
                                   "</tr></table>"
                                   "</body></html>"
                                   ];
    [webView loadHTMLString:htmlContentString baseURL:nil];

0

स्क्रॉल हटाने और UIWebViewपारदर्शी बनाने के लिए , नीचे दिए गए इस कोड को आज़माएं:

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

for(UIView *view in webView.subviews){   
     if ([view isKindOfClass:[UIImageView class]]) {  
          // to transparent   
          [view removeFromSuperview];  
     }  
     if ([view isKindOfClass:[UIScrollView class]]) {  
          UIScrollView *sView = (UIScrollView *)view;  
          //to hide Scroller bar 
          sView.showsVerticalScrollIndicator = NO;  
          sView.showsHorizontalScrollIndicator = NO;
          for (UIView* shadowView in [sView subviews]){  
               //to remove shadow  
               if ([shadowView isKindOfClass:[UIImageView class]]) {  
                    [shadowView setHidden:TRUE];  
               }  
          }  
     }   
}  

0

स्विफ्ट में 4.x,

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