Повернуть 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 на вашем слое

Чтобы указать, что слой необходимо перерисовать, отправьте ему setNeedsDisplay или же setNeedsDisplayInRect: сообщение. Вы должны сохранить желаемый угол поворота в ivar/ свойстве и получить доступ к этому значению из drawLayer:inContext:,

Другие вопросы по тегам