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));