2012-03-15 4 views
5

मेरे ऐप में मैं एक विधि है कि एक संदर्भ में एक PDF खींचता है: drawLayer मेंआईओएस, कैसे साफ करने के लिए संदर्भ ग्राफिक्स

CGPDFPageRef page = CGPDFDocumentGetPage(pdf, index + 1); 

CGAffineTransform transform = aspectFit(CGPDFPageGetBoxRect(page, kCGPDFTrimBox), 
                  CGContextGetClipBoundingBox(ctx)); 

CGContextConcatCTM(ctx, transform); 

CGContextDrawPDFPage(ctx, page); 

अब, यह कहा जाता है जब जूमिंग, मैं आवश्यक परिवर्तनों करते हैं और फिर से फोन CGContextDrawPDFPage(ctx, page);

क्या होता है कि पहले पीडीएफ के शीर्ष पर ज़ूम किया गया पीडीएफ खींचा जाता है, समस्या यह है कि किसी विशेष पृष्ठ में केवल टेक्स्ट के साथ, पीछे और धुंधला पीडीएफ दिखाया जाता है। यह अजीब बात है, मैंने सोचा कि पीडीएफ पेज में सफेद पृष्ठभूमि थी और यदि ऐसा होता है तो ऐसा इसलिए होता है क्योंकि शीर्ष पर ज़ूम किए गए पीडीएफ में पारदर्शी पृष्ठभूमि होती है।

अब, यह हल करने के लिए मैं drawLayer विधि के CGContextDrawPDFPage (ctx, पेज) से पहले संदर्भ को कैसे साफ़ कर सकता हूं? मैंने कोशिश की:

//self.view.transform = CGAffineTransformIdentity; 

//CGAffineTransform transform = CGAffineTransformIdentity; 
//CGContextConcatCTM(ctx, transform); 

//CGContextClearRect(ctx, layer.bounds); 

कुछ भी नहीं काम करता है ... अग्रिम धन्यवाद

+0

आपका प्रश्न पता चलता है कि पहले संदर्भ उसी संदर्भ के रूप में आप 'drawLayer में उपयोग नहीं है:'। आप मूल सीटीएक्स कैसे बनाते हैं, आप इसमें कब आकर्षित करते हैं, और इसके बाद आप इसके साथ क्या कर रहे हैं? –

उत्तर

4

आप नीचे के रूप में संदर्भ फ्लश करने की कोशिश की?

CGContextFlush(ctx); 
11
CGContextRef context = UIGraphicsGetCurrentContext(); 
CGContextClearRect(context, self.bounds); 
संबंधित मुद्दे