Cra*_*Dev 3 xcode distance cgpoint ios uipangesturerecognizer
我在视图中有手势代码
- (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);
}
}
Run Code Online (Sandbox Code Playgroud)
但它不能很好地工作,我不知道问题在哪里...如果滑动是从底部到顶部,它计算距离,如果你做相反的事情,它会计算一个很大的不同距离,我不知道'了解
将点定义为静态,否则touchBegan点将失去其值.之所以发生这种情况,是因为设置每个点的值发生在不同的方法调用中,并且每个点都会在开头重新定义点.
static CGPoint touchBegan;
static CGPoint pointEnd;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3029 次 |
| 最近记录: |