我正在尝试为我的视图实现UIPanGestureRecognizer。我如何添加多点触控?下面是我的观点(UIView的一个子类)的代码。我希望能够同时知道所有触摸的位置和速度。当前的代码只打印一次触摸的位置和速度。更改属性minimumNumberOfTouches和maximumNumberOfTouches不起作用。非常感谢您的帮助。使用UIPanGestureRecognizer进行多点触摸
UIPanGestureRecognizer *panGestureRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePanGesture:)];
panGestureRecognizer.cancelsTouchesInView = NO;
[self addGestureRecognizer:panGestureRecognizer];
- (void)handlePanGesture:(UIPanGestureRecognizer *)panGestureRecognizer
{
CGPoint location = [panGestureRecognizer locationInView:panGestureRecognizer.view];
CGPoint velocity = [panGestureRecognizer velocityInView:panGestureRecognizer.view];
NSLog(@"Location: %@", NSStringFromCGPoint(location));
NSLog(@"Velocity: %@", NSStringFromCGPoint(velocity));
}
非常感谢您的帮助。使用for循环,所有触摸的位置都可以正确打印出来。我尝试在循环中添加速度代码,并为所有触摸获得相同的速度。你建议写一个自定义方法。你能不能给我一些关于该方法的指导?谢谢! – HappyAppDeveloper
你必须自己实现它,但我想你可以将所有的pts存储在一个名为lastPts的数组中,也可以将它们存储在另一个变量中。然后,当你得到你的下一个句柄给你打电话时,你可以计算出从上一次呼叫到这一段所花费的时间。尽管如此,并不能保证触摸会以相同的顺序进行。 –