Повернуть CGPDFDocument/Page
Я загружаю CGPDFDocument, добавляю его в качестве подслоя в UIView (myContentView), а затем добавляю myContentView в UIScrollView. Это отлично работает. Теперь я хочу позволить пользователю вращать PDF, если они захотят. Получить PDF-файл с некоторым поворотом легко - я просто делаю это здесь:
- (void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx {
CGContextSaveGState (ctx);
CGContextSetRGBFillColor(ctx, 1.0, 1.0, 1.0, 1.0);
CGContextFillRect(ctx, CGContextGetClipBoundingBox(ctx));
CGContextTranslateCTM(ctx, 0.0, layer.bounds.size.height);
CGContextScaleCTM(ctx, 1.0, -1.0);
CGContextConcatCTM(ctx, CGPDFPageGetDrawingTransform(myPageRef, kCGPDFCropBox, layer.bounds, rotation, true));
CGContextDrawPDFPage(ctx, myPageRef);
CGContextRestoreGState (ctx);
}
Но как я могу это сделать после начальной загрузки?
Примечание: я попытался просто повернуть myContentView, что, кажется, работает, но после этого я больше не могу увеличивать / уменьшать масштаб PDF... Я думаю, что мне нужно, чтобы заставить вызывать drawLayer снова с новым значением в "ротации"... как мне это сделать?
Спасибо Стив
2 ответа
Чтобы указать, что слой необходимо перерисовать, отправьте ему setNeedsDisplay
или же setNeedsDisplayInRect:
сообщение. Вы должны сохранить желаемый угол поворота в ivar/ свойстве и получить доступ к этому значению из drawLayer:inContext:
,