我可以通过执行以下操作找到滑动开始位置的起始坐标
- (void)oneFingerSwipeUp:(UISwipeGestureRecognizer *)recognizer
{
CGPoint point = [recognizer locationInView:[self view]];
NSLog(@"Swipe up - start location: %f,%f", point.x, point.y);
}
是否可以找到滑动结束的坐标? 我调查了文档,没有提到。有没有解决这个问题?
非常感谢, -code
答案 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)
是的,你可以。 UISwipeGestureRecognizer
是UIGestureRecognizer
的子类。在那里你有方法:
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
有关详情,请阅读this文档。
答案 3 :(得分:0)
CGPoint pt = [recognizer locationOfTouch:0 inView:view];
我相信这会给你启动手势的触摸的原始x,y坐标。