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);