5

在我的应用程序中,我有一个将 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);

没有任何效果...在此先感谢

4

2 回答 2

12
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextClearRect(context, self.bounds);
于 2013-01-07T14:33:07.363 回答
4

您是否尝试如下刷新上下文?

CGContextFlush(ctx);
于 2012-03-15T16:33:20.753 回答