我在ios应用程序中制作pdf查看器。所以我使用了来自github
的树叶,以便拥有curl effect
。然后我使用方法
- (UIImage *)imageFromPDFWithDocumentRef:(CGPDFDocumentRef)documentRef andPageNumber:(int)pageNumber{
CGPDFPageRef pageRef = CGPDFDocumentGetPage(documentRef, pageNumber);
CGRect pageRect = CGPDFPageGetBoxRect(pageRef, kCGPDFCropBox);
UIGraphicsBeginImageContext(pageRect.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextTranslateCTM(context, CGRectGetMinX(pageRect),CGRectGetMaxY(pageRect));
CGContextScaleCTM(context, 1, -1);
CGContextTranslateCTM(context, -(pageRect.origin.x), -(pageRect.origin.y));
CGContextDrawPDFPage(context, pageRef);
UIImage *finalImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return finalImage;
}
在这里,我呼吁我拥有的每一页。因此我在视图控制器的底部添加了缩略图。点击任何缩略图我应该导航到相应的页面。
幸运的是,我有代表,我应该通过PageIndex
和CGContextRef
以便转到相应的页面。
- (void)renderPageAtIndex:(NSUInteger)index inContext:(CGContextRef)ctx {
reqContext = ctx;
CGPDFPageRef page = CGPDFDocumentGetPage(_pdf, index + 1);
CGAffineTransform transform = aspectFit(CGPDFPageGetBoxRect(page, kCGPDFMediaBox),
CGContextGetClipBoundingBox(reqContext));
CGContextConcatCTM(reqContext, transform);
CGContextDrawPDFPage(reqContext, page);
NSLog(@"index is %d",index);
//NSLog(@"%@",reqContext);
}
上面的代码存在于我从github获得的叶子中。现在我在github中看到,如果我调用此委托,则可以显示相应的页面。现在我可以通过pageIndex但无法以任何方式传递CGContextRef
。
有没有其他方法可以显示页面?