मेरे कोड में मैं UIWebView
को एक पृष्ठ लोड होने के रूप में दिखाने की कोशिश कर रहा हूं, और फिर, जब यह हो जाए, तो वेब दृश्य से छवि को कैश करने और बाद में प्रदर्शित करने के लिए कैप्चर करें (इसलिए मुझे पुनः लोड करने और प्रस्तुत करने की आवश्यकता नहीं है वेब पृष्ठ)।मैं कैसे बता सकता हूं कि UIWebView ने संदर्भ में ड्राइंग कब समाप्त कर दिया है?
मैं की तर्ज पर कुछ है:
CGContextRef context = CGBitmapContextCreate(…);
[[webView layer] renderInContext:context];
CGImageRef imageRef = CGBitmapContextCreateImage(context);
UIImage *image = [UIImage imageWithCGImage:imageRef];
समस्या मैं में चल रहा हूँ
कि, UIWebView
की खपरैल की वजह से, पृष्ठ के कभी कभी केवल आधा समय से संदर्भ के लिए प्रदान की गई है है मैं छवि पर कब्जा करता हूं।
UIWebView
के पृष्ठभूमि प्रतिपादन धागे को पहचानने या अवरोधित करने का कोई तरीका है ताकि मैं सभी प्रतिपादन समाप्त होने के बाद ही छवि प्राप्त कर सकूं?
अद्यतन: हो सकता है कि धागा दौड़ की स्थिति एक रेड हेरिंग थे (यह दस्तावेज़ से स्पष्ट नहीं है, किसी भी दर पर, चाहे UIWebView
के कस्टम परत या इसकी पृष्ठभूमि धागे पर सामान्य ब्लॉकों में एक CATiledLayer
) ।
यह और इसकी परत दोनों पर setNeedsDisplay
पर कॉल के कई प्रकारों के बावजूद एक अमान्यता मुद्दा हो सकता है)। प्रस्तुति से पहले UIWebView
की सीमाओं को बदलना ऐसा लगता है कि "पूरी चीज़ को चित्रित नहीं करना" समस्या समाप्त हो गई है।
मैं अभी भी एक समस्या में भाग गया जहां पुराने पैमाने पर कुछ टाइल्स खींचे जा रहे थे, लेकिन renderInContext:
पर दो बार कॉल करना पर्याप्त रूप से कम हो गया है।