Simule la deceleración UIScrollView

Tengo un UIPanGestureRecognize que utilizo para cambiar el marco de una vista. ¿Hay alguna manera de simular la desaceleración de UIScrollView o UITableView cuando el estado del gesto es UIGestureRecognizerStateEnded ? Aquí está mi código actual:

 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 } }]; } 

pero esto no es un desplazamiento suave. Me gustaría algo que se desacelere hasta que se detenga hasta el punto que he establecido. Gracias

La session 223 en WWDC 2012, "Mejora de la experiencia del usuario con vistas de desplazamiento", abarcó un método para usar el comportamiento y la "sensación" de un scrollview para animar la position de una vista diferente (sin que el scrollview esté realmente visible para el usuario).

El beneficio del método mostrado en la session es que su deceleración siempre coincidiría con UIScrollView, ahora y para siempre.

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

Tendría que encontrar un algorithm de algún tipo para calcular dónde desea que la vista se detenga en function de la velocidad del gesto, que se puede get así:

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

A partir de ahí, debería ser solo una cuestión de animar su vista en su lugar de descanso calculado y agregar una animation para conseguirlo allí. Creo que UIViewAnimationOptionCurveEaseOut sería apropiado aquí.