循環UIScrollViewを実装するには? つまり、一番左の項目までスクロールすると、UIScrollView は一番右の項目を表示します。どんな助けでも感謝します。
1 に答える
確かに、3 つのビューが必要です。任意の時点で、左側のビュー、右側のビュー、および現在のビューがあります。
これには、UIScrollViewDelegate を介した各移動の通知が必要です。
右に移動したことを検出すると、左を解放し、左 = 現在、現在 = 右にして、新しい右を作成します。
左に移動したことを検出した場合は、右を解放し、右 = 現在、現在 = 左にし、新しい左を作成します。
一般的に言えば、現在から 1 ページ以上離れたビューは必要ありません。したがって、合計で 3 ページしか必要ありません。
もちろん、UIScrollView の位置を操作して移動できるようにする必要もあります。最終的な結果は、動いているように見えても動かないということです。スクロールを完了し、左/現在/右のシャッフルに従ってビューを変更したら、それを行います
[self scrollRectToVisible:(middle frame) animated:NO];
そのため、常に同じ実際のページ (各面に 1 ページずつ) が表示されます。スクロールが発生すると、ユーザーはループ内でスクロールし続けることができるように見えますが、各ページがティックオーバーした後、ビューがシャッフルされ、スクロール ビュー内の位置が中央に戻され、ユーザーは再びスクロールできるようになります。
最初に戻るには、使用しているデータ構造の反対側にあるオブジェクトに関連するビューを使用するだけcurrent = [(NSArray)data lastObject]
ですright = [(NSArray)data objectAtIndex:0]
。