1

これが panGesture のインスタンスです。

   pangstr = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePan:)];

- (void)handlePan:(UIPanGestureRecognizer *)recognizer{

    CGPoint translation = [recognizer translationInView:baseView];
    recognizer.view.center = CGPointMake(recognizer.view.center.x + translation.x, recognizer.view.center.y);
    [recognizer setTranslation:CGPointMake(0, 0) inView:baseView];


    if (recognizer.state == UIGestureRecognizerStateEnded) {


        CGPoint velocity = [recognizer velocityInView:baseView];
        CGFloat magnitude = sqrtf((velocity.x * velocity.x));
        CGFloat slideMult = magnitude / 1000;
        NSLog(@"magnitude: %f, slideMult: %f", magnitude, slideMult);
        float slideFactor = 0.15 * slideMult;

        CGPoint finalPoint = CGPointMake(recognizer.view.center.x + (velocity.x * slideFactor),
                                         recognizer.view.center.y + (velocity.y * slideFactor));
}

ここで私の質問は、(panGestureRecogniser *)recogniser パラメータを - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event 関数で使用する方法です。TouchesMoved 関数で finalPoint の値を取得したいので、これが特に必要です。CGPoint finalPoint は *recogniser パラメーターを使用します。

誰かが私に解決策を教えてくれたら本当に素晴らしいだろう ありがとう

4

1 に答える 1

0

認識者の状態を使用しないのはなぜですか?

if (recognizer.state == UIGestureRecognizerStateChanged) 
{
    //Save whatever information you need here
}

共有変数に関しては、別のものを使用して?StateChangedで同期します。StateEnded

于 2012-11-29T12:03:12.230 に答える