2012-03-15 141 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);