0

ipad ビューを実装したいのですが、ここで xml ファイルを解析し、エントリを「無限」の ipad ビューに並べて配置するため、左右にスワイプする必要があります。誰かがこれを実装する方法を教えてもらえますか? どのタイプのビューを使用する必要がありますか?

前もって感謝します

よろしく

4

2 に答える 2

2

本当に大きなものを使うのcontentSizeは道ではありません。contentSizeまだ固定データ型を使用しており、十分に長くスクロールするとオーバーフローし、せいぜい図面が混乱するだけです。最悪の場合、アプリがクラッシュします。

必要なのは、ウィンドウを使用して無限スクロールの印象を与えることです。簡単な 1 次元の例でそのしくみを説明しますが、簡単に 2 次元に拡張できます。

3 つのエントリがあり、それぞれがUIScrollView. 右にスクロールすると、次のように配置されているように見えます。

A B C A B C A B C ...

内部的には、次のように配置します。

C A B C

A が表示されているときに、右にスワイプすると C の一部が表示され、左にスワイプすると B の一部が表示されるためです。

あなたUIScrollViewcontentOffsetはあなたの窓口です。contentSize4 つのエンティティすべての幅を包含しますが ( ) 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いるビューのコントローラーにあるインスタンス変数を想定していること、およびコントローラーがデリゲートであることに注意してください。UIScrollViewUIScrollView

これは、常にビューを解放して再作成するよりもはるかに効率的です。

于 2010-04-23T02:13:20.667 に答える
1

ページングを有効にしてUIScrollViewを使用します。重要なのは、myscrollView.contentSizeをすべてのページの全幅に設定することですが、スクロールが行われているときにジャストインタイムベースで個々のページを作成します(UIScrollViewDelegateのドキュメントを参照)。つまり、現在のビューと前のビューと次のビューの3つだけが必要な場合に、実際に数十以上のビューでメモリを使い果たしたくないということです。アップルからのこのサンプルコードはあなたが始めるはずです:http: //developer.apple.com/iphone/library/samplecode/Scrolling/Introduction/Intro.html

于 2010-04-21T12:26:53.803 に答える