如何在UIPanGestureRecognizer中使用velocityView更快地拖动?

时间:2011-08-04 06:15:55

标签: iphone ios cocoa-touch core-graphics uigesturerecognizer

理解如何为我下面使用的代码(由@PaulSoltz编写)实现更快的拖动速度有一点麻烦,它允许您在屏幕上拖动对象。我意识到你必须使用velocityInView中的UIPanGestureRecognizer方法,我理解它会返回x速度向量和y速度向量。如果velocity =距离随时间变化,那么例如velocityx = (x2 - x1) / time,我不确定如何使用这个公式来得到我需要的东西。基本上我只是希望能够调整我的运动速度,使其更快一点。也许我在思考问题,但如果有人能帮我理解这一点,我们将不胜感激。感谢。

- (void)handlePanGesture:(UIPanGestureRecognizer *)gestureRecognizer {

    UIView *myView = [gestureRecognizer view];

    CGPoint translate = [gestureRecognizer translationInView:[myView superview]];


    if ([gestureRecognizer state] == UIGestureRecognizerStateChanged || [gestureRecognizer state] == UIGestureRecognizerStateChanged) {
        [myView setCenter:CGPointMake(myView.center.x + translate.x, myView.center.y + translate.y)];
    [gestureRecognizer setTranslation:CGPointZero inView:[myView superview]];
    }
}

1 个答案:

答案 0 :(得分:0)

只需将平移向量的分量乘以某个常数。

[myView setCenter:CGPointMake(myView.center.x + translate.x * 2, myView.center.y + translate.y * 2)];