左右にスワイプしてページを移動できるように、1ページのPDFを水平に配置して表示しようとしています。そしてもちろん、ページをズームする必要があります。
ページングが有効になっUIWebView
ているコンテナ内でsを使用して実装しました。PDFビューアとして機能し、ページの変更を処理します。しかし、この実装は良いものではなく、メモリを使いすぎるので、の代わりにAppleを使用することにしました。UIScrollViewer
UIWebView
UIScrollView
ZoomingPDFViewer
UIWebView
sの元のコードは次UIWebView
のようになります。
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
内部UIScrollView
またはUITableView
タッチイベントが予期しない結果をもたらす可能性があるため、の使用を推奨していません。
だから私はAppleの例で与えられたものに変更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ページを表示します。ページ間をスワイプすることはできますが、ページを拡大することはできません。
どうしたらいいのかわからない。手伝って頂けますか?