我正在尝试显示水平放置的单页 PDF,以便可以通过向左或向右滑动来浏览页面。当然,我需要缩放页面。
我在启用了分页UIWebView
的容器中使用 s实现了它。用作 PDF 查看器并处理页面更改。但是这个实现不是很好,它占用了太多内存,所以我决定使用 Apple 的而不是.UIScrollViewer
UIWebView
UIScrollView
ZoomingPDFViewer
UIWebView
我UIWebView
的 s 原始代码如下所示:
for (int i=0; i<n; i++)
{
CGRect frame;
frame.origin.y = 0;
frame.origin.x = self.scrollviewer.frame.size.width * i;
frame.size = self.scrollviewer.frame.size;
UIWebView *pageViewer = [[UIWebView alloc] initWithFrame:frame];
pageViewer.scalesPageToFit = TRUE;
pageViewer.multipleTouchEnabled = TRUE;
[self.scrollviewer addSubview:pageViewer];
NSURL *url = [NSURL URLWithString:address];
NSURLRequest *req = [NSURLRequest requestWithURL:url];
[pageViewer loadRequest:req];
}
self.scrollviewer.contentSize = CGSizeMake(nPages * self.scrollviewer.frame.size.width, self.scrollviewer.frame.size.height);
这很完美,但当我有超过 25 页时它会很慢并且 Apple 不建议使用UIWebView
inside aUIScrollView
或者UITableView
因为触摸事件可能会产生意想不到的结果。
UIWebView
所以我想改成ZoomingPDFViewer
苹果给出的例子。我的新代码ZoomingPDFViewer
如下所示:
for (int i=0; i<n; i++)
{
CGRect frame;
frame.origin.y = 0;
frame.origin.x = self.scrollviewer.frame.size.width * i;
frame.size = self.scrollviewer.frame.size;
PDFScrollView *pageViewer = [[PDFScrollView alloc] initWithFrame:frame];
[self.scrollviewer addSubview:pageViewer];
NSURL *url = [NSURL URLWithString:address];
CGPDFDocumentRef PDFDocument = CGPDFDocumentCreateWithURL((__bridge CFURLRef)url);
CGPDFPageRef PDFPage = CGPDFDocumentGetPage(PDFDocument, 1);
[(PDFScrollView *)pageViewer setPDFPage:PDFPage];
CGPDFDocumentRelease(PDFDocument);
}
self.scrollviewer.contentSize = CGSizeMake(nPages * self.scrollviewer.frame.size.width, self.scrollviewer.frame.size.height);
此代码显示我的 PDF 页面,我可以在页面之间滑动,但无法放大页面。
我不知道该怎么办。你能帮助我吗?