/ / Comment trouver les détails de l'animation UIView en cours? - uiview, uianimation

Comment trouver les détails de l'animation UIView actuelle? - uiview, uianimation

J'ai une méthode de définition pour une propriété sur une coutume UIView classe. Si elle est définie dans un UIView bloc d’animation, j’aimerais bien ajouter un CABasicAnimation à la vue "s couche avec la même durée et assouplissement que le UIView animation. Comment puis-je savoir si je suis dans un UIView bloc d'animation, et Comment puis-je obtenir sa durée et sa courbe d'accélération?

Réponses:

1 pour la réponse № 1

Sur la base de cette question, j’ai fait cette extension à UIView bloquer les animations: UIView + AnimatedProperty.

Cela vous permet de courir CAAnimations lorsque le passeur est appelé depuis un bloc d'animation. Exemple avec cornerRadius est inclus.


2 pour la réponse № 2

Très simple.. Vous pouvez appliquer toutes les clés d’animation à votre vue en utilisant

[self.YourView.layer animationKeys];

1 pour la réponse № 3

La documentation de [UIView animateWithDuration] indique que

Cette méthode exécute immédiatement les animations spécifiées à l'aide des options d'animation UIViewAnimationOptionCurveEaseInOut et UIViewAnimationOptionTransitionNone.

En ce qui concerne la durée, vous définissez vous-même la durée.


0 pour la réponse № 4

Vous pouvez obtenir l'animation actuelle assez facilement. Par exemple, la mise en place d’un CATransaction:

CAAnimation *animation = [self.layer animationForKey:self.layer.animationKeys.firstObject];
[CATransaction begin];
[CATransaction setAnimationDuration:animation.duration];
[CATransaction setAnimationTimingFunction:animation.timingFunction];

// CALayer animation here

[CATransaction commit];