找到UISwipeGestureRecognizer的结束/结束坐标

时间:2012-12-20 11:01:23

标签: iphone objective-c ios

我可以通过执行以下操作找到滑动开始位置的起始坐标

- (void)oneFingerSwipeUp:(UISwipeGestureRecognizer *)recognizer 
{ 
CGPoint point = [recognizer locationInView:[self view]];
NSLog(@"Swipe up - start location: %f,%f", point.x, point.y);
}

是否可以找到滑动结束的坐标? 我调查了文档,没有提到。有没有解决这个问题?

非常感谢, -code

4 个答案:

答案 0 :(得分:7)

您需要检查手势识别器的状态属性

- (void)swipe:(UISwipeGestureRecognizer *)recognizer
{
   CGPoint point = [recognizer locationInView:[recognizer view]];
   if (recognizer.state == UIGestureRecognizerStateBegan)
       NSLog(@"began: %@", NSStringFromCGPoint(point));
   else if (recognizer.state == UIGestureRecognizerStateEnded)
       NSLog(@"ended: %@", NSStringFromCGPoint(point));
}

答案 1 :(得分:3)

  

您需要检查手势识别器的状态属性

警告

这是不正确的,因为滑动手势仅生成UIGestureRecognizerStateEnded个事件。

我找到如何解决此问题的唯一方法是使用touchesBegan:。它仅适用于当前视图,因此我应该将触摸传递给父视图。

答案 2 :(得分:0)

是的,你可以。 UISwipeGestureRecognizerUIGestureRecognizer的子类。在那里你有方法: - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event

有关详情,请阅读this文档。

答案 3 :(得分:0)

CGPoint pt = [recognizer locationOfTouch:0 inView:view];

我相信这会给你启动手势的触摸的原始x,y坐标。