Uma alternativa mais simples para UIDynamicAnimator
no iOS 7 é Spring Animation (uma nova e poderosa animação em bloco UIView), que pode fornecer um bom efeito de salto com amortecimento e velocidade:
Objetivo C
[UIView animateWithDuration:duration
delay:delay
usingSpringWithDamping:damping
initialSpringVelocity:velocity
options:options animations:^{
//Animations
}
completion:^(BOOL finished) {
//Completion Block
}];
Rápido
UIView.animateWithDuration(duration,
delay: delay,
usingSpringWithDamping: damping,
initialSpringVelocity: velocity,
options: options,
animations: {
//Do all animations here
}, completion: {
//Code to run after animating
(value: Bool) in
})
Swift 4.0
UIView.animate(withDuration:duration,
delay: delay,
usingSpringWithDamping: damping,
initialSpringVelocity: velocity,
options: options,
animations: {
//Do all animations here
}, completion: {
//Code to run after animating
(value: Bool) in
})
usingSpringWithDamping
0.0 == muito saltitante. 1.0 faz com que ele desacelere suavemente sem ultrapassar.
initialSpringVelocity
é, aproximadamente, "distância desejada, dividida pelos segundos desejados". 1.0 corresponde à distância total da animação percorrida em um segundo. Exemplo, a distância total da animação é 200 pontos e você deseja que o início da animação corresponda a uma velocidade de visualização de 100 pt / s, use um valor de 0,5.
Um tutorial mais detalhado e um aplicativo de amostra podem ser encontrados neste tutorial . Espero que isso seja útil para alguém.