Apple の「Page-Based Application」Xcode テンプレートとこのレンダリング アプローチを使用しています。
drawRectを介して各PDFページを独自のPDFPageViewにレンダリングし、各ページのDataViewControllerにサブビューとして追加しています。
これは機能していますが、ページのレンダリングに時間がかかるため、ページのフリックアニメーションが遅くなるため、ページをプリレンダリングしてキャッシュする方法を考えています。
これまでのところ、ページがレンダリングされた後、DataViewControllers を変更可能なディクショナリに入れています。そのインデックスに対するその後の viewControllerAtIndex の呼び出しは確かに高速ですが、より長い (52 ページ、11 MB) PDF ファイルのページを最後のページまでフリックし続け、フリックして戻ると、10 ページ後に再び遅くなります。辞書に存在します。
これは正しいアプローチですか、それとも代わりにレンダリングされた PDFPageViews をキャッシュする必要がありますか?
事前にプリレンダリングしたい場合、dispatch_async を使用してレンダリングし、プリレンダリングされた PDFPageView または DataViewController をディクショナリに入れる必要がありますか?
それとも、まったく別のアプローチを使用する必要がありますか? ありがとう!