2012-04-02 10 views
0

PDFのUIScrollViewsをいくつか含むUIScrollViewを取得しようとしています。PDFのネストされたUIScrollView-ユニフォームズーム

(単にPDFファイルとしてズームする能力)App Storeでこのビューと同じ考え方: App Store Screenshot Viewer

私が正しく動作するようにズームを得る難しさを抱えています。同時にどのようにズームすることができますか?

私はこの方法から1つのビューを返すことができたときにどのように私はこれを達成することができます

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView

感謝を!

+0

あなたはurの質問を詳述できますか? – Saranya

答えて

5

WWDC 2011のビデオ、特に "Advanced ScrollView Techniques" Session 104をご覧になり、104 Session from 2010が好きな人はこちらをご覧ください。彼らは両方とも画像によるズームとスクロールの側面を扱います。 pdfビュー(他のチュートリアルから)を採用することは大きな問題ではありません。あなたのviewForZoomingInScrollView:方法で

あなたは他のscrollViewを呼び出し、あなたはviewForZoomingInScrollView:デリゲートメソッドにコンテナUIViewを返す必要があり、プログラム

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView { 
    if (scrollView == firstSV) { 
     return viewForFirstScrollView; 
    } else { 
     return viewForSecondScrollView; 
    } 
} 

- (void)scrollViewDidZoom:(UIScrollView *)scrollView { 
    firstSV.zoomScale = secondSV.zoomScale; 
    // and the other way if you can zoom the second scrollView too 
} 
+0

+1 iOS 5まではスクロールビューのネストは本当にサポートされていなかったと思いますが、このセッションではうまくいきました。 – Caleb

2

ズーム倍率を設定することができます。 このコンテナビューでは、イメージと同じように、すべてのPDFビューを並べて配置する必要があります。 ズームインすると、コンテナビューの内容がズームされます。 ブーム、完了。

ズームのPDFビューを作成し、あまりにも多くのページを読み込んで同時にメモリを使いすぎないようにしてください。 それは難しいときです。

ズームPDFビューを構築することのいずれかを意味し、あなたがPDFKitでレンダリングし、それがズームアップされるたびに更新された画像を含むビューを構築する(スクロールビューのデリゲートがあることを示します)、またはあなたがCATiledLayerを使用する必要がありますPDFページをタイルとしてレンダリングし、メモリを節約し、パフォーマンスを向上させます。

ページがあまりにも多く読み込まれていないということは、スクロールビューがスクロールするときに、コンテナビュー内でPDFページビューを追加または削除する必要があることを意味します。

私はクライアントのためにこれを行いました。そして、バグをなくすには永遠に(少なくともスクロールビューやPDFKitに慣れていない場合は約3週間かかります)。 あなたがそれを構築したいと思えば、あなたが始めるのにthis Stack Overflow questionを参照してください。

もう1つの選択肢は、PSPDFKitのライセンスを$ 800で購入し、アプリ内で動作させるには約2時間の統合です。 自分でPDFリーダーを作成した後、2番目のオプションを選択します。 時間とお金を節約できます。

関連する問題