你必須創建一個UIView
子類並覆蓋drawRect
-(void)drawRect:(CGRect)rect
{
CGPDFPageRef page = CGPDFDocumentGetPage(document, currentPage);
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextSaveGState(ctx);
CGContextTranslateCTM(ctx, 0.0, [self bounds].size.height);
CGContextScaleCTM(ctx, 1.0, -1.0);
CGContextConcatCTM(ctx, CGPDFPageGetDrawingTransform(page, kCGPDFCropBox, [self bounds], 0, true));
CGContextDrawPDFPage(ctx, page);
CGContextRestoreGState(ctx);
}
凡document
和currentPage
是
CGPDFDocumentRef document;
int currentPage;
可能在initWithFrame
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
self.backgroundColor = [UIColor whiteColor];
NSString *pathToPdfDoc = [[NSBundle mainBundle] pathForResource:@"aa" ofType:@"pdf"];
NSURL *pdfUrl = [NSURL fileURLWithPath:pathToPdfDoc];
document = CGPDFDocumentCreateWithURL((CFURLRef)pdfUrl);
currentPage = 1;
totalPages = (int)CGPDFDocumentGetNumberOfPages(document);
}
return self;
}
在哪裏添加UIview? ViewController已經有一個視圖,然後爲什麼我們必須添加?我們必須重寫rect方法? – user2523879
你需要一個自定義的'UIView'子類。 'drawRect'是UIView類的一個方法,你必須重寫 –
它的工作,謝謝。但如何渲染多頁PDF? – user2523879