1

ZoomingPDFViewer の Apple のサンプル コードを理解しようとしています。これが私の心の中でどのように機能するかを理解する上で私が持っているいくつかの質問です. 私はそれを正しく理解しているかどうかはよくわかりません。コードのリンクは次のとおりです。http://developer.apple.com/library/ios/#samplecode/ZoomingPDFViewer/Introduction/Intro.html

(1) CATiledLayer は、さまざまなズーム レベルで PDF を表すために使用されます。クラスリファレンスを見るためにこのクラスが使用されていると思います。ズーム機能にこのクラス以外のものを使用することはありますか?

(2) TiledPDFView の initWithFrame では、次のことを行います。tiledLayer.tileSize = CGSizeMake(512.0, 512.0); tileSize は画像全体を構成するタイルですか? もしそうなら、なぜそんなに大きなサイズなのですか?

(3) oldPDFView と pdfView はどのように機能しますか? ズームのさまざまな段階でどちらが前にあり、いつスワップアウトするかなど。ロジックの流れを理解するのに苦労しています。ありがとう。

4

1 に答える 1

2

(1)ズームレベルごとに詳細レベルを変更する必要がない場合、またはPDFの読み込みが十分に速く、一度に2つのタイルを描画する必要がない場合は、通常のCALayerを備えた通常のUIViewで問題なく動作します。たとえば、PDFの代わりに画像を表示していて、画像の読み込みがパフォーマンスの低下を引き起こさないほど高速である場合、CATiledLayerが提供する非同期読み込みは必要ありません。PhotoScrollerサンプルでは、​​タイル化されたアプローチとタイル化されていないアプローチの両方を比較したい場合に使用します。

(2)tileSize属性は、レイヤーを分割するブロックのサイズを変更します。これは好きなように設定できます。特にPDFのサイズが大きい場合、512x512はそれほど大きくはありません。デフォルトは256x256です。

(3)ズームを開始すると、oldPDFViewが削除されて解放されます。次に、pdfViewがoldPDFViewに割り当てられます。ズームが終了すると、スケールが変更された新しいpdfViewが作成され、古いものの上に追加されます。新しいスケールが増加している場合、新しいpdfViewはより詳細なレベルで描画されます。これにより、PDFをどんどん深く拡大できるようになります。maximumZoomScaleとminimumZoomScaleは、個々のジェスチャでズームできる量を制限するだけです。

于 2011-06-16T23:10:23.243 に答える