我需要帮助子类化UIPinchGestureRecognizer来查找夹点期间触摸的位置

时间:2012-04-16 07:07:19

标签: objective-c cocos2d-iphone box2d uigesturerecognizer uipinchgesturerecognizer

我需要跟踪触摸的位置,同时用户捏一些奇特的点点滴滴,对于游戏来说,与缩放无关。我可以检测到捏,但是我无法在捏合期间找到水龙头的位置,只有中点(即使使用私有变量触摸也不起作用)。

理想的结果是(其中Box2DPinchRecognizer是我的UIPinchRecognizer子类的名称):

Box2DPinchRecognizer *pinchRecognizer = [[Box2DPinchRecognizer alloc] initWithTarget:self action:@selector(pinchGesture:) withObject:(NSArray*)touches];

触摸是两个CGPoints的数组,指示你的手指在哪里。

2 个答案:

答案 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