2010-07-23 23 views
5

पर पृष्ठभूमि छवि प्रदर्शित करना मैं एक मूल एप्लिकेशन बनाने की कोशिश कर रहा हूं कि सभी उद्देश्यों और उद्देश्यों के लिए HTML/CSS और जावास्क्रिप्ट है। यह सब ठीक काम करता है, लेकिन जब UIWebView लोड होता है तो डीओएम पॉप्युलेट होने पर देरी हो जाती है, छवियों को पुनर्प्राप्त किया जाता है।UIWebView

क्या UIWebView पर पृष्ठभूमि छवि प्रदर्शित करने के लिए वैसे भी है, या इसके पीछे कुछ है? आदर्श रूप से यह स्प्लैश स्क्रीन जैसा ही होगा, इसलिए यह स्लैश से ऐप में संक्रमण के अनुभव को प्रभावित नहीं करता है।

धन्यवाद

रोबी

उत्तर

3

मुझे विश्वास नहीं है कि आप UIWebView को पारदर्शी के रूप में सेट करना चाहते हैं और इसके पीछे एक छवि दिखाना चाहते हैं।

इसके बजाय आपके पास कुछ प्रकार का दृश्य होना चाहिए (शायद आपके द्वारा सुझाए गए चित्र के साथ, शायद एक यूआईंडिंडेटर और अर्द्ध पारदर्शी दृश्य जो पृष्ठ को "अंधेरा" करता है) जो UIWebView ने अपनी सामग्री लोड होने तक वहां बैठे हैं। तब

@interface myWebView : UIViewController <UIWebViewDelegate> { 
    // variables etc 
} 

, आप लोड पर एक दृश्य दिखा सकते हैं:

ऐसा करने के लिए, पहले अपने वर्ग UIWebViewDelegate प्रोटोकॉल की सदस्यता चाहिए

-(void)viewDidLoad { 
    myView.hidden = NO; 
} 

और अंत में, आप webViewDidFinishLoad ओवरराइड कर सकते हैं इसे लोड करने के बाद इसे छिपाने की विधि

- (void)webViewDidFinishLoad:(UIWebView *)localwebView { 
    myView.hidden = YES; 
} 
+1

HTML और CSS को लोड और प्रस्तुत करने पर UIWebView जैसी कुछ चीज़ों के लिए उचित ईवेंट निकाल दिए जाते हैं? $ (दस्तावेज़) .ready() jQuery से समतुल्य कुछ की तरह? मैं निश्चित रूप से यह कोशिश करूँगा, धन्यवाद। – Robbie

+0

हां, jQuery समकक्ष एक अच्छी तुलना है। – h4xxr

30

मैं अपने UIWebViews पर एक पारदर्शी पृष्ठभूमि पाने के लिए मेरे कोड में निम्न करने के लिए मिला है - मैं आमतौर पर UIViewController

self.webView.backgroundColor = [UIColor clearColor]; 
self.webView.opaque = NO; 
की viewDidLoad विधि में ऐसा

मुझे लगता है कि आप UIWebViews गुणों में इंटरफ़ेस बिल्डर में उन परिवर्तनों को भी कर सकते हैं।

--- संपादित करें ---

और पृष्ठभूमि छवि के लिए आप अभी UIWebView के पीछे में एक UIImageView रख सकते हैं कि आप इसे एक पारदर्शी पृष्ठभूमि दिया है।

+0

iOS4 सभी दृश्यों .backgroundView का एक नया संपत्ति जो clearColor को .backgroundColor करना और फिर इसके पीछे एक छवि डालने के लिए की जरूरत को हटा देता है। हालांकि मैं इस बात से सहमत नहीं हूं कि एक पृष्ठभूमि छवि (जो वेब पेज धीरे-धीरे * ऊपर * पर लोड होगा) जोड़ना सही दृष्टिकोण है ... – h4xxr

+0

तो यह निश्चित रूप से काम करता है, मुझे विभिन्न परिदृश्यों से लोड होने के साथ कुछ समस्याएं थीं लेकिन ऐसा कुछ है जिसे मुझे सीखने की ज़रूरत है। – Robbie

+0

सही समाधान !! – iwill

1

XIB में नियंत्रक देखने के लिए छवि जोड़ें या "लॉन्च छवि" की योजना के लिए। यह शुरुआत से स्प्लैश स्क्रीन दिखाएगा। लोड हो रहा है जबकि viewDidLoad में WebView छिपाने WebView

webView.hidden = YES; 

लोड viewDidLoad

एक बार WebView लोड किया जाता है में हमेशा की तरह HTML सामग्री के साथ WebView, कुछ करने के बाद दृश्य को अद्यतन करने प्रदर्शन करते हैं। मुझे लगता है कि यह प्रतिनिधि समारोह को पूरा करने और यूआई अपडेट के साथ आगे बढ़ने के लिए कुछ समय की अनुमति देगा।

- (void)webViewDidFinishLoad:(UIWebView *)webView { 
    [self performSelector:@selector(updateWebView) withObject:nil afterDelay:1]; 
} 

-(void) updateWebView { 
    webView.hidden = NO; 
    self.view = webViewElement; 
    // or 
    [self.view addSubview:webViewElement]; 
} 

मैंने ऊपर की कोशिश की है कि कोई सफेद स्क्रीन के साथ ठीक काम कर रहा है।

8
webView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"senthil.jpg"]]; 
+0

किसी भी कारण से इसे कोई वोट नहीं मिला? यह मेरे लिए अद्भुत काम किया। एकमात्र विस्तार यह है कि आपको "अपारदर्शी" चेकबॉक्स को अनचेक करना होगा और यह एक आकर्षण की तरह काम करता है। –