模拟UIScrollView减速

我有一个UIPanGestureRecognize ,我用它来改变视图的框架。 有一种方法来模拟手势的状态是UIGestureRecognizerStateEnded UIScrollViewUITableView的减速? 这是我现在的代码:

 if (panGesture.state == UIGestureRecognizerStateEnded) { [UIView animateWithDuration:0.25 delay:0 options:UIViewAnimationOptionBeginFromCurrentState animations:^{ self.view.frame = CGRectMake(182, 0, self.view.frame.size.width, self.view.frame.size.height); } completion:^(BOOL finished) { if (finished) { //Do something } }]; } 

但这不是一个光滑的滚动。 我想要一些减速的东西,直到它停止到我设定的点。 谢谢

WWDC2012会议“使用滚动视图增强用户体验”中的会话223介绍了一种使用滚动视图的行为和“感觉”来设置不同视图的位置animation的方法(没有滚动视图实际上对用户可见)。

会话中显示的方法的好处是,你的减速将永远匹配UIScrollView,现在和永远。

https://developer.apple.com/videos/wwdc/2012/?id=223

你将不得不提出一种algorithm,根据手势的速度来计算视图停止的位置,可以这样获得:

 CGPoint velocity = [panGesture velocityInView:panGesture.view]; 

从那里它应该只是一个animation你的观点进入计算的rest的地方,并添加一个animation来获得它的问题。 我相信UIViewAnimationOptionCurveEaseOut在这里是适当的。