需要drawLayer将3个PDF文件绘制到3个不同的UIViews

时间:2012-02-29 17:43:04

标签: xcode pdf calayer draw catiledlayer

我正在加载3个不同的PDF文件并烘干以使用drawLayer将它们绘制成3个UIview。这是有效的,但它们都被绘制到一个UIview的同一层中。我需要将它们各自绘制到自己的UIView中,但我无法弄清楚如何将这些代码分解为三个部分。有什么想法吗?

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

1 个答案:

答案 0 :(得分:0)

CALayer属于单个UIView,负责自己绘制,而不是其他图层。您需要控制器将每个PDF文件发送到正确的视图,并让每个视图在其自己的层中绘制它。