2013-03-27 17 views
17

Wie können Sie den CAShapeLayer-Pfad und die Füllfarbe animieren?So animieren Sie den CAShapeLayer-Pfad und die Füllfarbe

Wie strokeEnd animiert wird, um den gezeichneten Pfad anzuzeigen? und wie fillColor animiert wird?

+0

hilft es beseelt automatisch, wenn Sie es einrichten. Kannst du ein bisschen mehr darüber erzählen, was du erreichen willst? – jrturton

Antwort

49

Weg

//setup the CAShapeLayer 
myShapeLayer.strokeColor = [[UIColor blueColor] CGColor]; 
myShapeLayer.lineWidth = 5; 
myShapeLayer.fillColor = [[UIColor yellowColor] CGColor]; 



//Display it! 
[self.view.layer addSublayer:myShapeLayer]; 

//Animate path 
CABasicAnimation *pathAnimation = [CABasicAnimation animationWithKeyPath:@"strokeEnd"]; 
pathAnimation.duration = 1.5f; 
pathAnimation.fromValue = [NSNumber numberWithFloat:0.0f]; 
pathAnimation.toValue = [NSNumber numberWithFloat:1.0f]; 
pathAnimation.repeatCount = 10; 
pathAnimation.autoreverses = YES; 
[myShapeLayer addAnimation:pathAnimation forKey:@"strokeEnd"]; 

//Animate colorFill 
CABasicAnimation *fillColorAnimation = [CABasicAnimation animationWithKeyPath:@"fillColor"]; 
fillColorAnimation.duration = 1.5f; 
fillColorAnimation.fromValue = (id)[[UIColor clearColor] CGColor]; 
fillColorAnimation.toValue = (id)[[UIColor yellowColor] CGColor]; 
fillColorAnimation.repeatCount = 10; 
fillColorAnimation.autoreverses = YES; 
[myShapeLayer addAnimation:fillColorAnimation forKey:@"fillColor"]; 

animieren Ich hoffe, das :)

+0

Ich würde hinzufügen, dass fromValue und toValue CGMutablePathRef Objekte animiert werden können, um den Pfad selbst zu ändern, mit Schlüssel @ "Pfad". Das obige mit dieser Änderung hat für meine Zwecke gearbeitet. Vielen Dank. – webjprgm

Verwandte Themen