我需要跟踪触摸的位置,同时用户捏一些奇特的点点滴滴,对于游戏来说,与缩放无关。我可以检测到捏,但是我无法在捏合期间找到水龙头的位置,只有中点(即使使用私有变量触摸也不起作用)。
理想的结果是(其中Box2DPinchRecognizer是我的UIPinchRecognizer子类的名称):
Box2DPinchRecognizer *pinchRecognizer = [[Box2DPinchRecognizer alloc] initWithTarget:self action:@selector(pinchGesture:) withObject:(NSArray*)touches];
触摸是两个CGPoints的数组,指示你的手指在哪里。
答案 0 :(得分:3)
无需任何子类化。您应该能够在其操作方法中询问任何UIGestureRecognizer
当前触摸的位置:
- (void)pinchGesture:(UIGestureRecognizer *)recognizer
{
NSUInteger numberOfTouches = recognizer.numberOfTouches;
NSMutableArray *touchLocations = [NSMutableArray arrayWithCapacity:numberOfTouches];
for (NSInteger touchIndex = 0; touchIndex < numberOfTouches; touchIndex++) {
CGPoint location = [recognizer locationOfTouch:touchIndex inView:self.view];
[touchLocations addObject:[NSValue valueWithCGPoint:location]];
}
...
}
编辑:
在代码末尾添加方括号。
答案 1 :(得分:0)
我的自定义UIPinchGestureRecognizer的第一部分为您提供了两种触摸的位置。也许它可以帮助: https://stackoverflow.com/a/17938469/1186235