UIScrollview内のUIAnimatorからUISnapBehaviorを使用して、スクロールビューのコンテンツをポイントにスナップできるかどうかを調べようとしています。これまでのところ、私の調査結果は、これは不可能であるという結論に達しています。
私が達成しようとしていること
UIScrollView を使用して、ユーザーがスクロール ビューをドラッグしているときに特定のポイントに「スナップ」します。ただし、スクロールは、ユーザーがタッチを離すことなく、スナップされた位置から再開する必要があります。
Apple は、iOS Photos アプリの Photo Editing でこれを実現しているようです。(下のスクリーンショットを参照)
私が試したこと
UIPanGestureRecognizer をスクロールビューにアタッチし、その速度を使用して、この動作を得ようとしました。ユーザーがスナップ ポイントに向かってドラッグしている場合、スクロール ビューはスクロールを無効にし、スナップ ポイントまでアニメーション化します。アニメーション化が完了すると、スクロールが再び有効になります。
ただし、これにより、ユーザーがドラッグ後にタッチアップを持ち上げてスクロールビューを再ドラッグする必要があるという問題が発生します。それでも、Apple は抗力を持ち上げることなくそれを行ったようです。