IOS, как очистить контекстную графику

В моем приложении у меня есть метод, который рисует 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 сверху имеет прозрачный фон.

Теперь, чтобы решить это, как я могу очистить контекст прямо перед CGContextDrawPDFPage(ctx, page) метода drawLayer? Я старался:

//self.view.transform = CGAffineTransformIdentity;

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

//CGContextClearRect(ctx, layer.bounds);

Ничего не работает... спасибо заранее

2 ответа

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

Вы пытались очистить контекст, как показано ниже?

CGContextFlush(ctx);
Другие вопросы по тегам