Animer le dessin d'un cercle

Je suis à la recherche d'un moyen d'animer le dessin d'un cercle. J'ai été en mesure de créer le cercle, mais il attire tous ensemble.

Voici mon CircleView classe:

import UIKit

class CircleView: UIView {
  override init(frame: CGRect) {
    super.init(frame: frame)
    self.backgroundColor = UIColor.clearColor()
  }

  required init(coder aDecoder: NSCoder) {
    fatalError("init(coder:) has not been implemented")
  }


  override func drawRect(rect: CGRect) {
    //Get the Graphics Context
    var context = UIGraphicsGetCurrentContext();

    //Set the circle outerline-width
    CGContextSetLineWidth(context, 5.0);

    //Set the circle outerline-colour
    UIColor.redColor().set()

    //Create Circle
    CGContextAddArc(context, (frame.size.width)/2, frame.size.height/2, (frame.size.width - 10)/2, 0.0, CGFloat(M_PI * 2.0), 1)

    //Draw
    CGContextStrokePath(context);
  }
}

Et voici comment je l'ajouter à la vue de la hiérarchie de mon point de vue contrôleur:

func addCircleView() {
    let diceRoll = CGFloat(Int(arc4random_uniform(7))*50)
    var circleWidth = CGFloat(200)
    var circleHeight = circleWidth
    //Create a new CircleView
    var circleView = CircleView(frame: CGRectMake(diceRoll, 0, circleWidth, circleHeight))

    view.addSubview(circleView)
}

Est-il un moyen d'animer le dessin du cercle de plus de 1 seconde?

Exemple, une partie de la route par le biais de l'animation, cela ressemblerait à quelque chose comme la ligne bleue dans cette image:

Animer le dessin d'un cercle

  • Lorsque j'utilise la classe ci-dessus, le cercle n'est pas complètement rempli, c'est un anneau de cercle (beignet à la recherche) des idées pourquoi?
InformationsquelleAutor Roi Mulia | 2014-10-26