IOS,如何清除上下文图形

时间:2012-03-15 10:33:18

标签: iphone objective-c ipad cgcontextdrawpdfpage

在我的应用程序中,我有一个方法可以将pdf绘制到上下文中:

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

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

 CGContextConcatCTM(ctx, transform);

 CGContextDrawPDFPage(ctx, page);

现在在drawLayer中,在缩放时调用,我进行必要的转换并再次调用CGContextDrawPDFPage(ctx, page);

在第一个pdf之上绘制缩放的pdf会发生什么,问题是在仅包含文本的特定页面中,显示了背面和模糊的pdf。这很奇怪,我认为pdf页面有白色背景,如果发生这种情况,那是因为顶部的缩放pdf具有透明背景。

现在,为了解决这个问题,如何在drawLayer方法的CGContextDrawPDFPage(ctx,page)之前清除上下文?我试过了:

//self.view.transform = CGAffineTransformIdentity;

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

//CGContextClearRect(ctx, layer.bounds);

没有任何作用......提前感谢

2 个答案:

答案 0 :(得分:12)

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

答案 1 :(得分:4)

您是否尝试刷新上下文?

CGContextFlush(ctx);