3
我有姿势这段代码在一个视图中IOS:使用手势从两个cgpoint计算距离
- (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);
}
}
,但它不正常工作,我不知道问题出在哪里? 如果滑动是从底部到顶部,它计算一个距离,如果你做相反它计算一个很大的不同距离,我不明白
查看pointStart和pointEnd是否在最后一次闭包中有有效值。 – Alexander 2012-02-22 14:36:58
这不正常: pointBegan:{19,223} pointEnd:{19,257} distance:257.701385 result must be 34 – CrazyDev 2012-02-22 14:57:08
不,你不了解我。在打印'pointEnd'的行中为'touchBegan'添加值打印。 – Alexander 2012-02-22 15:16:35