私のアプリには、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);
何も機能しません...事前に感謝します