2 votes

Comment la durée et UISpringTimingParameters interagissent-ils dans UIViewPropertyAnimator ?

IOS 10 dispose de quelques nouvelles classes pour l'animation. Les plus connues sont UIViewPropertyAnimator y UISpringTimingParameters . L'animateur de propriétés peut être créé avec une durée et des paramètres de synchronisation - les paramètres de synchronisation peuvent être une instance des paramètres du ressort.

Un point commun plainte La durée d'une véritable animation de ressort devrait être déterminée par les propriétés du ressort, comme le taux d'amortissement et la vitesse initiale. UISpringTimingParameters peut être créé avec ce genre de paramètres.

Ma question : Fait UIViewPropertyAnimator utilisera-t-il toujours la durée que vous lui donnez lorsque sa courbe de distribution est un ressort ? Ou bien va-t-il ignorer la durée et utiliser les paramètres du ressort pour la calculer ? Ce serait une décision bizarre de l'API de la part d'Apple, mais il semble aussi bizarre d'être si près de donner aux concepteurs ce qu'ils veulent (de vrais ressorts) et de ne pas y arriver (spécifier de force une durée).

7voto

seedante Points 185

UIViewPropertyAnimator est comme une version orientée objet de l'animation UIView. Note : UISpringTimingParameters comprennent deux types de méthodes init : init(dampingRatio: CGFloat, initialVelocity: CGVector) comme l'API Spring Animation de UIView, qui est une version simplifiée de l'animation Spring ; init(mass: CGFloat, stiffness: CGFloat, damping: CGFloat, initialVelocity: CGVector) comme Core Spring Animation API qui est une animation complète de Spring.

Réponse : : avec un timing de printemps de init(dampingRatio: CGFloat, initialVelocity: CGVector) , UIViewPropertyAnimator La durée de l'animation de l'instance sera celle que vous avez définie ; avec un timing de printemps de init(mass: CGFloat, stiffness: CGFloat, damping: CGFloat, initialVelocity: CGVector) , UIViewPropertyAnimator La durée de l'animation de l'instance sera de un ce printemps, calculez le timing. Il est facile de le vérifier. Vous pouvez utiliser ma démo : ControlPanelAnimation .

UIView Spring Animation API est une version simplifiée de Core Spring Animation API, comme le dit l'article que vous avez cité, UIView Spring Animation API n'est pas bon pour l'oscillation réelle, mais il est facile à contrôler : la plupart du temps, vous avez besoin d'une animation dont vous contrôlez la durée. Core Spring Animation API : CASpringAnimation, elle a un vrai comportement de ressort mais il n'est pas facile de contrôler sa durée, sa durée d'animation dépend de ses quatre paramètres physiques.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X