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 に答える