【发布时间】:2013-10-26 11:02:53
【问题描述】:
我在我的应用程序中使用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 ......当我平移时)。但是,如果我快速平移,它每次都会给出不同的值(对于 Ex 23,29,34...),在一次运行中,(27,31,35..)在另一次运行中。因此,每次我快速平移时,If 语句 变为 false 之前的最后一个中心都会设置在不同的点。
无论我的平移速度如何,如何确保最后一个中心集每次都处于相同的最大点
【问题讨论】:
标签: ios objective-c uiview uigesturerecognizer