В моем приложении у меня есть метод, который рисует PDF в контексте:IOS, как очистить контекст графики
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 сверху имеет прозрачный фон.
Теперь, чтобы решить эту проблему, как я могу очистить контекст прямо перед CGContextDrawPDFPage (ctx, page) метода drawLayer? Я пробовал:
//self.view.transform = CGAffineTransformIdentity;
//CGAffineTransform transform = CGAffineTransformIdentity;
//CGContextConcatCTM(ctx, transform);
//CGContextClearRect(ctx, layer.bounds);
Ничто не работает ... спасибо заранее
Ваш вопрос предполагает, что первый контекст не тот же контекст, как вы используете в 'drawLayer:'. Как вы создаете оригинальный ctx, когда вы рисуете его, и что вы делаете с ним после этого? –