1

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

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

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

Where touches 是一个由两个 CGPoints 组成的数组,表示你的手指在哪里。

4

2 回答 2

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]];
    }
    ...
}


编辑:
在代码末尾添加方括号。

于 2012-04-16T09:40:04.400 回答
0

我的自定义 UIPinchGestureRecognizer 的第一部分为您提供了两个触摸的位置。也许它可以帮助: https ://stackoverflow.com/a/17938469/1186235

于 2013-07-30T04:57:16.243 回答