3

UIPanGestureRecognizeビューのフレームを変更するために使用する があります。UIScrollViewまたはの減速をシミュレートする方法はありUITableViewますUIGestureRecognizerStateEndedか? これが私の現在のコードです:

if (panGesture.state == UIGestureRecognizerStateEnded)
{
    [UIView animateWithDuration:0.25 delay:0 options:UIViewAnimationOptionBeginFromCurrentState animations:^{
    self.view.frame = CGRectMake(182, 0, self.view.frame.size.width, self.view.frame.size.height);
}
                 completion:^(BOOL finished) {
                     if (finished) {
                        //Do something
                     }
                 }];
}

しかし、これはスムーズなスクロールではありません。設定したポイントで停止するまで減速するものが欲しいです。ありがとう

4

2 に答える 2

14

WWDC 2012 のセッション 223「スクロール ビューによるユーザー エクスペリエンスの向上」では、スクロール ビューの動作と「感触」を使用して、別のビューの位置をアニメーション化する方法について説明しました (スクロール ビューが実際にユーザーに表示されることはありません)。

セッションに示されているメソッドの利点は、減速度が常に UIScrollView のものと一致することです。

https://developer.apple.com/videos/wwdc/2012/?id=223

于 2013-08-23T16:33:09.813 に答える
1

ジェスチャの速度に応じてビューを停止する場所を計算するために、何らかのアルゴリズムを考え出す必要があります。これは次のように取得できます。

CGPoint velocity = [panGesture velocityInView:panGesture.view];

そこからは、計算された静止位置にビューをアニメーション化し、アニメーションを追加してそこに移動するだけです。UIViewAnimationOptionCurveEaseOutここで適切だと思います。

于 2013-08-23T15:41:57.857 に答える