コードは次のとおりです。
https://www.dropbox.com/s/o42wy36x4qhrbpt/PDFScroller.zip
ズーム用、ページング用のネストを実装するWWDC 2010PhotoScroller
サンプルコードを取得し、画像の代わりに複数ページのPDFを表示するために必要な最小限のコードと思われるものを交換しました。UIScrollViews
UIScrollView
できます。しかし、私のiPhone4では遅く、最初のページをペイントするのに約3秒かかり、iPodTouchではさらに遅くなります。個々のタイルをペイントしているのを見ることができます。この同じPDFは、タイルの描画が表示されずに、すでにより速く開きます。別のCATiledLayer
実装では、単一のCATiledLayer
/UIScrollView
およびtouchイベントを使用してページを変更するだけです。このテクニックを使いたいPhotoScroller
のですが、とてもいいです。
InstrumentsのCPUSamplerで見ましたが、PDFレンダリングコードではないようです。スレッド化とメッセージングに時間がかかっているようです。このサンプルがオーバーヘッドを発生させるために何をしているのかを誰かが指摘するのを手伝ってくれれば幸いです。
ありがとう、
ジム
更新1:私はもともとTilingView
定義のサンプルコードからのクラステクニックを使用していました
+ (Class) layerClass {
return [CATiledLayer class];
}
そして、それが違いを生むかどうかを確認する最初の試みとして、描画しまし- (void)drawRect:(CGRect)rect
たが、明示的なサブクラスに切り替えましたがCATiledLayer
、そうではなかったので、ここに投稿するためにコードをそのままにしました。[tiledLayer release];
TilingViewにもリークがありません。