2012-03-15 130 views
5

在我的應用我有一個繪製一個PDF到上下文的方法:在drawLayerIOS,如何清除背景圖形

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

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

CGContextConcatCTM(ctx, transform); 

CGContextDrawPDFPage(ctx, page); 

現在,被稱爲縮放的時候,我做了必要的轉換,並再次呼籲CGContextDrawPDFPage(ctx, page);

會發生什麼情況是放大的pdf是在第一個pdf的頂部繪製的,問題是在只有文本的特定頁面中顯示了背面和模糊的pdf。這很奇怪,我認爲PDF頁面有白色背景,如果發生這種情況,這是因爲頂部的縮放pdf具有透明背景。

現在,爲了解決這個問題,我怎麼才能在drawContext方法的CGContextDrawPDFPage(ctx,page)之前清除上下文呢?我想:

//self.view.transform = CGAffineTransformIdentity; 

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

//CGContextClearRect(ctx, layer.bounds); 

沒有什麼工作......由於事先

+0

你的問題顯示,第一個方面是不一樣的情況下,你在'drawLayer使用:'。你如何創建原始的ctx,你什麼時候繪製它,以及之後你在做什麼? – 2012-03-15 16:42:43

回答

4

你嘗試刷新如下語境?

CGContextFlush(ctx); 
11
CGContextRef context = UIGraphicsGetCurrentContext(); 
CGContextClearRect(context, self.bounds);