Hi,
ich bin am verzweifeln. Ich hab mir einen Shape Layer und diesen will ich animiert zeichnen. Soweit so gut. Ich hab auch Code geschrieben, damit dies funktioniert. Nur der Haken ist, dass der Kreis schon vor der Animation gezeichnet wird und dann noch mal gezeichnet wird. Das sieht blöd aus. Wie kann man das verhindern, dass er beim starten gezeichnet wird und ihn erst bei der Animation Zeichnen?
Alles anzeigen
Ich möchte ein ganzen Kreis animiert Zeichen und den in verschieden Farben. Zurzeit mache ich das mit verschieden Kreisen, da es von Grün zu Gelb und da zu Rot gehen soll. Geht das auch nur mit einen Kreis? Denn irgendwie bin ich mit meiner Lösung nicht zufrieden. Das muss doch eleganter gehen so ein Timer.
Viele Grüße und Vielen Dank im voraus!
Nils
ich bin am verzweifeln. Ich hab mir einen Shape Layer und diesen will ich animiert zeichnen. Soweit so gut. Ich hab auch Code geschrieben, damit dies funktioniert. Nur der Haken ist, dass der Kreis schon vor der Animation gezeichnet wird und dann noch mal gezeichnet wird. Das sieht blöd aus. Wie kann man das verhindern, dass er beim starten gezeichnet wird und ihn erst bei der Animation Zeichnen?
Quellcode
- CAShapeLayer *progressLayerRed = [[CAShapeLayer alloc] init];
- [progressLayerRed setPath:circleTimeRed.CGPath];
- [progressLayerRed setStrokeColor:[UIColor blackColor].CGColor];
- [progressLayerRed setFillColor:[UIColor clearColor].CGColor];
- [progressLayerRed setLineWidth:5.0f];
- [progressLayerRed setStrokeStart:0.0];
- [progressLayerRed setStrokeEnd:1.0];
- [self.layer addSublayer:progressLayerRed];
- [CATransaction begin];
- CABasicAnimation *animateStrokeEndOtherColors = [CABasicAnimation animationWithKeyPath:@"strokeEnd"];
- animateStrokeEndOtherColors.duration = self.timePerCircle;
- animateStrokeEndOtherColors.fromValue = [NSNumber numberWithFloat:0.0f];
- animateStrokeEndOtherColors.toValue = [NSNumber numberWithFloat:1.0f];
- animateStrokeEndOtherColors.fillMode = kCAFillModeBoth;
- animateStrokeEndOtherColors.removedOnCompletion = NO;
- [CATransaction setCompletionBlock:^{
- [CATransaction setCompletionBlock:^{
- [progressLayerRed addAnimation:animateStrokeEndOtherColors forKey:nil];
- }];
- ....
Ich möchte ein ganzen Kreis animiert Zeichen und den in verschieden Farben. Zurzeit mache ich das mit verschieden Kreisen, da es von Grün zu Gelb und da zu Rot gehen soll. Geht das auch nur mit einen Kreis? Denn irgendwie bin ich mit meiner Lösung nicht zufrieden. Das muss doch eleganter gehen so ein Timer.
Viele Grüße und Vielen Dank im voraus!
Nils