質問

私はこのコードのためのコードをビューに持っています

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

    CGPoint touchBegan;
    CGPoint pointEnd;

    if (gestureRecognizer.state == UIGestureRecognizerStateBegan) 
    {   
        CGPoint touchBegan = [gestureRecognizer locationInView: gestureRecognizer.view];
        NSLog(@"pointBegan:%@",NSStringFromCGPoint(touchBegan));
    }
    else if (gestureRecognizer.state == UIGestureRecognizerStateChanged)
    {
    }

    else if (gestureRecognizer.state == UIGestureRecognizerStateEnded     ||
             gestureRecognizer.state == UIGestureRecognizerStateCancelled ||
             gestureRecognizer.state == UIGestureRecognizerStateFailed)
    {   
        pointEnd = [gestureRecognizer locationInView:gestureRecognizer.view];
        NSLog(@"pointEnd:%@", NSStringFromCGPoint(pointEnd));

        CGFloat xDist = (pointEnd.x - touchBegan.x);
        CGFloat yDist = (pointEnd.y - touchBegan.y);
        CGFloat distance = sqrt((xDist * xDist) + (yDist * yDist));
        NSLog(@"distance:%f", distance);
    }


}

しかし、それは正常に動作しず、問題がどこにあるのかわかりません...スワイプが下から上部までの場合、それは距離を計算し、反対のことを行うと、大きな異なる距離を計算すると、 'TRは理解しています

役に立ちましたか?

解決

ポイントを静的として定義します。そうしないと、Touchbeganポイントがその値を失います。各ポイントの値を異なるメソッド呼び出しで設定し、それぞれが最初にポイントを再定義するために発生します。

static CGPoint touchBegan;
static CGPoint pointEnd;
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top