ここで最初の質問、親切にしてください :P
無限の UIScrollView を作成しようとしています (「StreetScroller」Apple デモ プロジェクトを使用しました)。UIScrollView が contentSize のほぼ最後にある場合、contentOffset は contentSize の中央に設定され、すべてのサブビューが移動されるため、ユーザーに対して透過的になります。
スクロールが遅いときは正しく動作しますが、スクロールが速すぎて UIScrollView の最後に到達すると、事態が奇妙になります。
私の場合、frame.size.width = 320 および contentSize.x = 3 * frame.size.width で UIScrollView を使用します。スクロールが速すぎて contentSize の最後に到達すると、ログで次のようになります (つまり、右にスクロールしたときに x > 560 の場合)。
--> 慣性により UIScrollView がスクロールしている
SetContentOffset called width x : 504.730072
SetContentOffset called width x : 516.878967
SetContentOffset called width x : 528.489990
SetContentOffset called width x : 540.347656
SetContentOffset called width x : 550.754028
SetContentOffset called width x : 561.200378
--> UIScrollView が contentSize の最後に到達したので、再センタリングします
The next call of setContentOffset is for recentering the view
SetContentOffset called width x : 320.000000
--> ここに問題があります。UIScrollView は contentOffset.x の変更を考慮せず、最後に使用した contentOffset.x 値でアニメーションを続行します....
SetContentOffset called width x : 571.421753
The next call of setContentOffset is for recentering the view
SetContentOffset called width x : 320.000000
SetContentOffset called width x : 581.283447
The next call of setContentOffset is for recentering the view
SetContentOffset called width x : 320.000000
SetContentOffset called width x : 610.100952
そして、これはアニメーションが終了するまで続きます。
誰かが contentOffset を設定し、 UIScrollView にアニメーションを強制的に更新させるための解決策を持っている場合:)
私はスタックオーバーフローと無限UIScrollViewに関する他のウェブサイトのほとんどすべてのトピックを読んだ. そして、スクロール中に contentSize を変更したくありません(右またはボットでスクロールする場合にのみ機能します...)