Comment animer l'image d'une couche avec CABasicAnimation?
Je suppose que je dois convertir le CGRect dans un objet afin de le transmettre à fromValue?
C'est la façon dont je l'ai essayer, mais ça ne fonctionne pas:
CABasicAnimation *frameAnimation = [CABasicAnimation animationWithKeyPath:@"frame"];
frameAnimation.duration = 2.5;
frameAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
frameAnimation.fromValue = [NSValue valueWithCGRect:myLayer.frame];
frameAnimation.toValue = [NSValue valueWithCGRect:theNewFrameRect];
[myLayer addAnimation:frameAnimation forKey:@"MLC"];
source d'informationauteur dontWatchMyProfile | 2010-05-23
Vous devez vous connecter pour publier un commentaire.
Je suppose que vous avez besoin de changer votre dernière ligne de la faire fonctionner:
Vous pouvez également définir une action à la couche pour faire tous les châssis des changements d'animation avec votre animation:
Dans CALayer de
actionForKey:
méthode de référence, vous pouvez trouver comment la couche semble en place pour les actions d'animation de ses propriétés.Le cadre de la propriété d'un CALayer est un dérivé de la propriété, dépendant de la position, anchorPoint, de limites et de transformation de la couche. Au lieu de l'animation de l'image, il est préférable d'animer la position ou limites, en fonction de l'effet que vous essayez d'accomplir.
Pour déplacer un calque, vous pouvez animer les
position
:Pour redimensionner un calque, vous animez le
bounds
paramètre:Vous pouvez combiner ces animations à l'aide d'un CAAnimationGroup si vous avez besoin de déplacer et redimensionner un calque en même temps.
on peut changer les propriétés de "limites" et de la "position" de l'animer, comme
La question est ancienne, mais je vais répondre quand même.
Cadre de la propriété n'est pas animables. Vous devez animer d'autres propriétés. Aussi, vous devez désactiver implicite des animations.
Ici est un simple, totalement, l'exemple de ce qui peut aider quelqu'un.
Appelez simplement
.slideUp()
sur la classe et il va glisser vers le haut.