ipad ビューを実装したいのですが、ここで xml ファイルを解析し、エントリを「無限」の ipad ビューに並べて配置するため、左右にスワイプする必要があります。誰かがこれを実装する方法を教えてもらえますか? どのタイプのビューを使用する必要がありますか?
前もって感謝します
よろしく
ipad ビューを実装したいのですが、ここで xml ファイルを解析し、エントリを「無限」の ipad ビューに並べて配置するため、左右にスワイプする必要があります。誰かがこれを実装する方法を教えてもらえますか? どのタイプのビューを使用する必要がありますか?
前もって感謝します
よろしく
本当に大きなものを使うのcontentSize
は道ではありません。contentSize
まだ固定データ型を使用しており、十分に長くスクロールするとオーバーフローし、せいぜい図面が混乱するだけです。最悪の場合、アプリがクラッシュします。
必要なのは、ウィンドウを使用して無限スクロールの印象を与えることです。簡単な 1 次元の例でそのしくみを説明しますが、簡単に 2 次元に拡張できます。
3 つのエントリがあり、それぞれがUIScrollView
. 右にスクロールすると、次のように配置されているように見えます。
A B C A B C A B C ...
内部的には、次のように配置します。
C A B C
A が表示されているときに、右にスワイプすると C の一部が表示され、左にスワイプすると B の一部が表示されるためです。
あなたUIScrollView
のcontentOffset
はあなたの窓口です。contentSize
4 つのエンティティすべての幅を包含しますが ( ) C A B C
、内部的には実際の幅の 75% に制限します。ユーザーが左右にスクロールするときに、contentOffset
負の値または の 75% を超えないように調整しますcontentSize.width
。これは、デリゲート内で行われます。scrollViewDidScroll:
- (void) scrollViewDidScroll:(UIScrollView *)scrollView
{
while (scrollView.contentOffset.x < 0)
scrollView.contentOffset.x += constrainedContentSize.width;
while (scrollView.contentOffset.x > constrainedContentSize.width)
scrollView.contentOffset.x -= constrainedContentSize.width;
// ...
}
これは、おそらくあなたが内部にconstrainedContentSize
いるビューのコントローラーにあるインスタンス変数を想定していること、およびコントローラーがデリゲートであることに注意してください。UIScrollView
UIScrollView
これは、常にビューを解放して再作成するよりもはるかに効率的です。
ページングを有効にしてUIScrollViewを使用します。重要なのは、myscrollView.contentSizeをすべてのページの全幅に設定することですが、スクロールが行われているときにジャストインタイムベースで個々のページを作成します(UIScrollViewDelegateのドキュメントを参照)。つまり、現在のビューと前のビューと次のビューの3つだけが必要な場合に、実際に数十以上のビューでメモリを使い果たしたくないということです。アップルからのこのサンプルコードはあなたが始めるはずです:http: //developer.apple.com/iphone/library/samplecode/Scrolling/Introduction/Intro.html