2009-05-13 17 views
10

पर कनवर्ट करें I HTML स्वरूपित टेक्स्ट को प्रदर्शित करने के लिए UIWebView का उपयोग कर रहा हूं। मैं एक वेबपृष्ठ लोड नहीं कर रहा हूं, बस UIWebView पर HTML की एक स्ट्रिंग की आपूर्ति कर रहा हूं।UIWebview सामग्री को UIImage

अब मैं स्क्रीन पर इस UIWebView को एनिमेट करना चाहता हूं, वास्तव में उनमें से कई (एक समय में 2-10)। UIWebView थोड़ा भारी है, और हालांकि मैंने अभी तक इसका प्रयास नहीं किया है, मैं सबसे खराब की योजना बना रहा हूं। (मुझे नहीं लगता कि यह समयपूर्व अनुकूलन है, मैं लगभग सकारात्मक हूं यह एक मुद्दा होगा)

समस्या को हल करने के लिए, मुझे लगा कि मैं UIWebViews की सामग्री को UIImages में परिवर्तित कर सकता हूं और इसके बजाय उन्हें एनिमेट कर सकता हूं।

तो, मेरे सवाल कर रहे हैं:

  1. आप कैसे एक UIImage (या CGImageRef) को UIWebView सामग्री में परिवर्तित?
  2. मेरे UIWebViews में पारदर्शी बाकग्राउंड हैं, पारदर्शिता UIImage पर ले जाया जाएगा?

किसी भी सुझाव

उत्तर

21
UIGraphicsBeginImageContext(webview.bounds.size); 
[webview.layer renderInContext:UIGraphicsGetCurrentContext()]; 
UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 

क्योंकि वेबव्यू एक CATiledLayer कि स्मृति कारणों के लिए सब कुछ आकर्षित नहीं करता है का उपयोग करता है, तो वेबव्यू आयाम बड़े हैं तो आपको समस्याएं हो सकती हैं के लिए धन्यवाद।

छवि पारदर्शिता

+0

धन्यवाद। मेरे वेबव्यू टेक्स्ट की केवल साधारण पंक्तियां हैं, इसलिए मुझे नहीं लगता कि यह एक मुद्दा होगा। मुझे लगता है कि छवि के आयाम स्क्रीन पर वेबव्यू के आयाम हैं? –

+0

आपको आकार के लिए कॉल करने की आवश्यकता हो सकती है: वेबव्यू लोड के बाद, वेबव्यू को सामग्री का सही आकार –

+0

प्राप्त करने के लिए जिज्ञासा से बाहर क्यों आप UIWebView के रूप में टेक्स्ट की एकल पंक्तियां प्रदर्शित करना चाहते हैं? – Thomas

0

मैं गलत हो सकता है, लेकिन यदि आप CoreAnimation का कैश परम सेट ओएस आप के लिए इस अनुकूलन संभाल लेंगे शामिल होंगे।

उदा।

[UIView setAnimationTransition:transition forView:self.view cache:YES]; 
+0

मैं पथ एनीमेशन कर रहा हूं, इसलिए मैं UIView सुविधा विधियों का उपयोग नहीं कर सकता, लेकिन उनके सीए में कुछ (शायद है) हो सकता है जो समान रूप से काम करता है ... –