- - (void) drawRect: (CGRect) rect {
- if (self.filePath == nil) //如果没被初始化的话,就初始化
- {
- self.pageNumber = self.pageNumber; //这个其实应该由外部函数控制,不过谁让这个程序特别简单呢
- self.filePath = [[NSBundle mainBundle] pathForResource: @"Effective Objective-C 2.0"ofType: @"pdf"];
- }
- CGContextRef context = UIGraphicsGetCurrentContext(); [[UIColor whiteColor] set];
- CGContextFillRect(context, rect);
- // --将UIKit的坐标系转换为QuartZ的坐标系
- CGContextScaleCTM(context, 1, -1);
- CGContextTranslateCTM(context, 0, -rect.size.height);
- CGPDFDocumentRef document;
- CGPDFPageRef page;
- // --读取PDF文档及对应的页数
- document = GetPDFDocumentRef(self.filePath);
- page = CGPDFDocumentGetPage(document, self.pageNumber);
- // --缩放后以正常比例显示PDF文档,且铺满整个屏幕
- CGRect mediaRect = CGPDFPageGetBoxRect(page, kCGPDFCropBox);
- CGContextScaleCTM(context, rect.size.width / mediaRect.size.width, rect.size.height / mediaRect.size.height);
- CGContextTranslateCTM(context, -mediaRect.origin.x, -mediaRect.origin.y);
- // --将PDF的该页显示
- CGContextDrawPDFPage(context, page);
- CGPDFDocumentRelease(document);
- // DisplayPDFPage(context, self.pageNumber, self.filePath);
- }
来源: http://lib.csdn.net/snippet/objective-c/48940