iOS:ジェスチャーを使用して、2つのcgpointからの距離を計算します
-
29-10-2019 - |
質問
私はこのコードのためのコードをビューに持っています
- (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;
所属していません StackOverflow