Une alternative plus simple à UIDynamicAnimator
iOS 7 est Spring Animation (une nouvelle et puissante animation de bloc UIView), qui peut vous donner un bel effet de rebond avec amortissement et vitesse:
Objectif C
[UIView animateWithDuration:duration
delay:delay
usingSpringWithDamping:damping
initialSpringVelocity:velocity
options:options animations:^{
//Animations
}
completion:^(BOOL finished) {
//Completion Block
}];
Rapide
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 == très rebondissant. 1.0 le fait décélérer en douceur sans dépassement.
initialSpringVelocity
est, à peu près, «distance souhaitée, divisée par les secondes souhaitées». 1.0 correspond à la distance totale d'animation parcourue en une seconde. Par exemple, la distance totale de l'animation est de 200 points et vous voulez que le début de l'animation corresponde à une vitesse de vue de 100 pt / s, utilisez une valeur de 0,5.
Un didacticiel plus détaillé et un exemple d'application peuvent être trouvés dans ce didacticiel . J'espère que c'est utile pour quelqu'un.