我UIPanGestureRecognizer
在我的应用程序中使用。我必须停止根据我得到的翻译值平移视图。这是一段简单的代码。
-(void) handlePan:(UIPanGestureRecognizer) gestureRecognizer {
CGPoint translation = [gestureRecognizer translationInView:self.view];
if( ((someFixedPoint.center.y - currentYCoord + translation.y) < A_FIXED_DISTANCE ) )
{
[view setCenter:[fixedX, currentYCoord + translation.y];
}
}
问题是translation.y
每次我快速平移时都会返回不同的值。如果我缓慢平移它可以正常工作,因为**translation.y**
它给出了一致的值(例如 23、24、25 ......当我平移时)。但是,如果我快速平移,它每次都会给出不同的值(例如 23,29,34...),在一次运行中,(27,31,35..)在另一次运行中。因此,每次我快速平移时, If 语句变为 false之前的最后一个中心设置在不同的点。无论我的平移速度如何,如何确保最后一个中心集每次都处于相同的最大点