मैंने पढ़ा है कि मुझे क्वार्ट्ज 2 डी प्रोग्रामिंग गाइड के प्रासंगिक भाग होने का विश्वास है, लेकिन निम्नलिखित का जवाब नहीं मिल रहा है (वे बात नहीं कर रहे हैं दस्तावेज़ में आईओएस के बारे में बहुत कुछ):ऑफ़-स्क्रीन ड्राइंग के लिए UIView से CGLayer कैसे बनाएं
मेरा एप्लिकेशन UIView
में एक चित्र प्रदर्शित करता है। हर अब और फिर मुझे ड्राइंग को किसी तरह से अपडेट करना होगा, उदा। आकारों में से एक के भरने वाले रंग को बदलें (मैं CGPathRefs
को महत्वपूर्ण आकारों में रखता हूं ताकि उन्हें बाद में एक अलग भरने वाले रंग से फिर से निकाला जा सके)।
CGContextRef offscreenContext = CGLayerGetContext(offscreenLayer);
तब मैं: धारा ऊपर उल्लिखित दस्तावेज़ के पेज 169 पर "एक CGLayer के साथ बैठक" में वर्णित है, मैं एक CGContext
में पूरे ड्राइंग है कि मैं एक CGLayer
से प्राप्त होता है, तो तरह ड्राइंग के बारे में सोच रहा था इसलिए जैसे विधि,: UIView
के drawRect में मेरी UIView में CGContext
में ऑफ स्क्रीन मेरी अद्यतन करने कर सकता है और आकर्षित CGLayer
CGContextDrawLayerAtPoint(viewContext, CGPointZero, offscreenLayer);
समस्या मैं कर रहा हूँ है, जहां मैं से मेरी CGLayer
मिलता है ? मेरी समझ है कि मुझे इसे CGLayerCreateWithContext
का उपयोग करना है और एक पैरामीटर के रूप में CGContext
की आपूर्ति करना है जिससे इसे इसके अधिकांश गुण प्राप्त होते हैं। जाहिर है, सही संदर्भ UIView
के संदर्भ हो सकता है, कि मैं
CGContextRef viewContext = UIGraphicsGetCurrentContext();
साथ हो रही है लेकिन अगर मैं गलत नहीं हूँ, मैं ही नहीं प्राप्त कर सकते हैं के भीतर drawRect
: विधि और यह मान लेना कि मान्य नहीं है जिस संदर्भ में मुझे दिया गया है, वही होगा जब अगली बार विधि कहा जाता है, यानी मैं विधि के भीतर स्थानीय रूप से उस CGContext
का उपयोग कर सकता हूं।
तो, मैं एक CGContext
कि मैं आरंभ करने के लिए उपयोग कर सकते हैं प्राप्त कर सकते हैं मेरी CGLayer
एक गुप्त CGContext
में आकर्षित करने के लिए बनाने के लिए और फिर मेरी UIView
के CGContext
में वापस पूरी परत आकर्षित?
पीएस: जबकि आप इसमें हैं; अगर ऊपर कुछ भी समझ में नहीं आता है या नहीं, तो कृपया मुझे बताएं। मैं बस क्वार्ट्ज 2 डी के आसपास अपना सिर लेना शुरू कर रहा हूं।
मैं सीजीएलयर समस्या से भी अटक गया हूं, मुझे समझ में नहीं आता कि मेरे छुपे हुए कार्यों में इसे कैसे लिखना है, क्या आप कृपया मेरी पोस्ट http://stackoverflow.com/questions/11341763/how-to- उपयोग-cglayer-for-optimal-drawing – Ranjit
CGContextBeginPath() और CGContextClosePath() संदर्भ का पैरामीटर लेते हैं। – Ant