2

UIScrollview内のUIAnimatorからUISnapBehaviorを使用して、スクロールビューのコンテンツをポイントにスナップできるかどうかを調べようとしています。これまでのところ、私の調査結果は、これは不可能であるという結論に達しています。

私が達成しようとしていること

UIScrollView を使用して、ユーザーがスクロール ビューをドラッグしているときに特定のポイントに「スナップ」します。ただし、スクロールは、ユーザーがタッチを離すことなく、スナップされた位置から再開する必要があります。

Apple は、iOS Photos アプリの Photo Editing でこれを実現しているようです。(下のスクリーンショットを参照)

ここに画像の説明を入力

私が試したこと

UIPanGestureRecognizer をスクロールビューにアタッチし、その速度を使用して、この動作を得ようとしました。ユーザーがスナップ ポイントに向かってドラッグしている場合、スクロール ビューはスクロールを無効にし、スナップ ポイントまでアニメーション化します。アニメーション化が完了すると、スクロールが再び有効になります。

ただし、これにより、ユーザーがドラッグ後にタッチアップを持ち上げてスクロールビューを再ドラッグする必要があるという問題が発生します。それでも、Apple は抗力を持ち上げることなくそれを行ったようです。

4

2 に答える 2

1

UIPanGestureRecognizer を UIScrollView に直接追加しないでください。それをコンテナー ビューに追加してから、セレクターで UIScrollView contentOffset を手動で設定します。

UIScrollView 自体での対話を無効にするか、デリゲートを使用して、スクロール ビューとの直接対話を防ぎます。

于 2016-07-23T00:18:21.170 に答える