2012-02-29 2 views
1

3つの異なるPDFファイルをロードしていて、drawLayerを使用してそれらを3つのUIビューに描画しています。これは動作しますが、3つすべてが1つのUIビューの同じレイヤーに描画されています。私はそれぞれ独自のUIViewに描画する必要がありますが、私はどのように3つの部分にこのコードを解析するかを理解することはできません。どんなアイデアですか?3つの異なるUIViewに3つのPDFファイルを描画するdrawLayerが必要です

// This method takes care of the cropping and adds each PDF layer to the view 
- (void)drawLayer:(CALayer *)layer inContext:(CGContextRef)context { 
CGContextSetRGBFillColor(context, 1.0, 1.0, 1.0, 1.0); 
CGContextFillRect(context, CGContextGetClipBoundingBox(context)); 
CGContextTranslateCTM(context, 0.0, layer.bounds.size.height); 
CGContextScaleCTM(context, 1.0, -1.0); 
CGContextConcatCTM(context, CGPDFPageGetDrawingTransform(mappageRef, kCGPDFCropBox, layer.bounds, 0, true)); 
CGContextDrawPDFPage(context, mappageRef); 
CGContextConcatCTM(context, CGPDFPageGetDrawingTransform(vorpageRef, kCGPDFCropBox, layer.bounds, 0, true)); 
CGContextDrawPDFPage(context, vorpageRef); 
CGContextConcatCTM(context, CGPDFPageGetDrawingTransform(labelpageRef, kCGPDFCropBox, layer.bounds, 0, true)); 
CGContextDrawPDFPage(context, labelpageRef); 
} 

答えて

0

CALayerは1つのUIViewに属し、他のレイヤーを描画するのではなく、それ自身を描画します。各PDFファイルを正しいビューに送信し、各ビューにそれ自身のレイヤーを描画するようにコントローラが必要です。

+0

私はあなたにフォローしています。上記のdrawLayerを、例えばmapViewというUIViewにどのように割り当てるか。上記のコードの前に、特定のUIViewにも描画を割り当てるためのオープニングタグがありますか? – Redstar

+0

'drawLayer:inContext:'の真ん中でこれを行うことは決してありません。それは描画方法です。そして、このビュークラス内にすべきではありません。これらのビューを所有するView Controllerでこれを行う必要があります。これはビューにデータを渡す役割を果たし、ビューはデータをレイヤーに渡します。 –

関連する問題