Animation eine Kreises

  • Animation eine Kreises

    Hi alle zusammen,

    ich habe mal bisschen im Web gesucht und einen Code gefunden, der nach ein paar Modifikationen schon fast das macht was ich will. Leider nur fast und ich komme gerade nicht weiter. Vermute das es irgendwo nur eine Kleinigkeit ist und hoffe das mir einer sagen kann, was ich ändern muss.

    PHP-Quellcode

    1. - (void)drawRect:(CGRect)rect start:(CGFloat)start end:(CGFloat)end
    2. {
    3. int radius = 100;
    4. int strokeWidth = 50;
    5. CGColorRef color = [UIColor blackColor].CGColor;
    6. int timeInSeconds = 5;
    7. CGFloat startAngle = start;
    8. CGFloat endAngle = end;
    9. CAShapeLayer *circle = [CAShapeLayer layer];
    10. circle.path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, 2.0*radius, 2.0*radius) cornerRadius:radius].CGPath;
    11. circle.position = CGPointMake(CGRectGetMidX(self.frame)-radius, CGRectGetMidY(self.frame)-radius);
    12. circle.fillColor = [UIColor redColor].CGColor;
    13. circle.strokeColor = color;
    14. circle.lineWidth = strokeWidth;
    15. [self.layer addSublayer:circle];
    16. CABasicAnimation *drawAnimation = [CABasicAnimation animationWithKeyPath:@"strokeEnd"];
    17. drawAnimation.delegate = self;
    18. drawAnimation.duration = timeInSeconds;
    19. drawAnimation.repeatCount = 1.0;
    20. drawAnimation.removedOnCompletion = YES;
    21. // drawAnimation.autoreverses = YES; //Rückwärts
    22. drawAnimation.fromValue = [NSNumber numberWithFloat:startAngle];
    23. drawAnimation.toValue = [NSNumber numberWithFloat:endAngle];
    24. drawAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
    25. [circle addAnimation:drawAnimation forKey:@"drawCircleAnimation"];
    26. }
    Alles anzeigen



    Der Code zeichnet in meine View einen wunderschönen Kreis. Ich kann einen Start- und Endpunkt angeben und wie lange er für die Animation brauchen soll. Problem ist, das er sagen wir mal 50 % des Kreises zeichnen soll, dieses macht er auch, innerhalb von 5 Sekunden und wenn er dann fertig ist, zeigt er den kompletten Kreis. Ich will aber natürlich das er mir nur die 50% des Kreises anzeigt, die ich auch zeichnen lasse.

    Hoffe es kann mir einer Helfen.

    Schon mal Danke.

    Gruß
    Cabaalo