2

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

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

是否可以找到滑动结束的坐标?我查看了文档,但没有提到。有什么解决办法吗?

非常感谢,-代码

4

4 回答 4

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));
}
于 2012-12-20T11:06:24.507 回答
3

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

警告

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

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

于 2015-04-02T12:49:55.730 回答
0

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

有关更多信息,请阅读文档。

于 2012-12-20T11:04:30.297 回答
0
CGPoint pt = [recognizer locationOfTouch:0 inView:view];

我相信这将为您提供启动手势的触摸的原始 x,y 坐标。

于 2012-12-20T11:05:38.360 回答