2010-11-17 6 views
0

Mise à jour:Animer un CAShapeLayer tout en se déplaçant sa UIView mère via la propriété centre

Il n'y a pas de problème. Il s'avère que je rajoutais l'animation chaque fois que je déplaçais le point. Était-ce ailleurs dans le code et je l'ai complètement passé sous silence. S'il vous plaît ignorer cette question.

mise à jour de fin

J'ai un UIView qui agit comme un conteneur pour un UIImageView et un CAShaperLayer. Le calque de forme dessine un cercle et j'ai ajouté une animation de chemin à ce calque de forme pour le faire pulser. Je veux pouvoir pulser le cercle et déplacer la vue du conteneur en même temps en utilisant la propriété center de l'UIView. Cependant, lorsque je place la propriété center sur le conteneur UIView, l'animation d'impulsion redémarre à partir de son début, peu importe où elle se trouve dans son animation. Comment puis-je empêcher le redémarrage de l'animation d'impulsion?

animation Pulse:

CGRect startRect = CGRectMake(-10 + (self.bounds.size.width/2), 
           -10 + (self.bounds.size.height/2), 
           20, 
           20); 

CGMutablePathRef fromPath = CGPathCreateMutable(); 
CGPathAddEllipseInRect(fromPath, NULL, startRect); 

CGRect endRect = CGRectMake(-20 + (self.bounds.size.width/2), 
          -20 + (self.bounds.size.height/2), 
          40, 
          40); 

CGMutablePathRef toPath = CGPathCreateMutable(); 
CGPathAddEllipseInRect(toPath, NULL, endRect); 

CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"path"]; 
animation.fromValue = (id)fromPath; 
animation.toValue = (id)toPath; 

CGPathRelease(fromPath); 
CGPathRelease(toPath); 

animation.duration = 2.0f; 
animation.repeatCount = HUGE_VALF; 

[self.myCircleLayer addAnimation:animation forKey:self.pathAnimationKey]; 

Je propose la vue du récipient en faisant:

self.myContainerView.center = newPoint; 

Répondre

0

Voir la mise à jour ci-dessus. Il s'avère qu'il n'y avait pas de problème ici.

Questions connexes