0

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を新しい値で強制的に再度呼び出すことだと思います「回転」で...どうすればいいですか?

ありがとう、スティーブ

4

2 に答える 2

0

レイヤーでsetNeedsDisplayを呼び出してみてください

于 2011-03-06T15:43:45.293 に答える
0

レイヤーを再描画する必要があることを知らせるには、setNeedsDisplayまたはsetNeedsDisplayInRect:メッセージを送信します。目的の回転角度を ivar/property に保存し、からその値にアクセスする必要がありますdrawLayer:inContext:

于 2011-03-06T15:37:17.053 に答える