iOS – 了解UIPanGesture上的velocityInView

我正在使用UIPanGesture返回velocityInView,从我收集它应该是每秒返回点数。 我得到的是数以亿计的数字和很多零…我不会在模拟器中快速移动我的鼠标。

我认为…

在此先感谢您提供的任何帮助/建议。

编辑:请求的代码。

显示/呼叫

-(void)handlePanGesture:(UIPanGestureRecognizer *) recognizer { if (recognizer.state == UIGestureRecognizerStateChanged || recognizer.state == UIGestureRecognizerStateBegan) { CGPoint vel = [recognizer velocityInView:myScrollView]; //[self doSpinAnimationWithVelocity:vel.x]; NSLog([NSString stringWithFormat:@"Velocity - X-Axis - %d ", vel.x]); NSLog([NSString stringWithFormat:@"Velocity - Y-Axis - %d ", vel.y]); } } 

这是输出的图像,因为我仍然低于10代

没有你的代码很难说…

CGPoint由CGFloats组成,根据您的打印方式,您可能会得到意想不到的结果

传递给velocityInView的视图:必须在视图层次结构中,在将视图传递给velocityInView:方法之前,通过查看视图上的window属性来检查它

我知道我有点迟到了,但另一个提示:查看NSStringFromCGPoint()和家人:

 -(void)handlePanGesture:(UIPanGestureRecognizer *) recognizer { if (recognizer.state == UIGestureRecognizerStateChanged || recognizer.state == UIGestureRecognizerStateBegan) { CGPoint vel = [recognizer velocityInView:myScrollView]; NSLog(@"%@", NSStringFromCGPoint(vel)); } } 

它看起来像velocityInView:返回一个CGPoint,表示水平和垂直组件(基本上,它是一个向量)。 由于速度被分解为这两个组件,因此您必须小心分析值。 如果你更多地考虑速度而不是速度,你会考虑矢量的大小,即:

 CGFloat magnitude = sqrtf((velocityPoint.x * velocityPoint.x) + (velocityPoint.y * velocityPoint.y));