4

循環UIScrollViewを実装するには? つまり、一番左の項目までスクロールすると、UIScrollView は一番右の項目を表示します。どんな助けでも感謝します。

4

1 に答える 1

5

確かに、3 つのビューが必要です。任意の時点で、左側のビュー、右側のビュー、および現在のビューがあります。

これには、UIScrollViewDelegate を介した各移動の通知が必要です。

右に移動したことを検出すると、左を解放し、左 = 現在、現在 = 右にして、新しい右を作成します。

左に移動したことを検出した場合は、右を解放し、右 = 現在、現在 = 左にし、新しい左を作成します。

一般的に言えば、現在から 1 ページ以上離れたビューは必要ありません。したがって、合計で 3 ページしか必要ありません。

もちろん、UIScrollView の位置を操作して移動できるようにする必要もあります。最終的な結果は、動いているように見えても動かないということです。スクロールを完了し、左/現在/右のシャッフルに従ってビューを変更したら、それを行います

  [self scrollRectToVisible:(middle frame) animated:NO];

そのため、常に同じ実際のページ (各面に 1 ページずつ) が表示されます。スクロールが発生すると、ユーザーはループ内でスクロールし続けることができるように見えますが、各ページがティックオーバーした後、ビューがシャッフルされ、スクロール ビュー内の位置が中央に戻され、ユーザーは再びスクロールできるようになります。

最初に戻るには、使用しているデータ構造の反対側にあるオブジェクトに関連するビューを使用するだけcurrent = [(NSArray)data lastObject]ですright = [(NSArray)data objectAtIndex:0]

于 2010-08-06T06:09:30.840 に答える