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 № 1Sur 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];