Ios 循环进度条帮助,Swift编程语言

Ios 循环进度条帮助,Swift编程语言,ios,iphone,xcode,swift,xcode6,Ios,Iphone,Xcode,Swift,Xcode6,我想用swift制作一个小的圆形进度条 这就是我目前所拥有的 private var Timer:CGFloat = 100; override func update(currentTime: CFTimeInterval) { /* Called before each frame is rendered */ var StartAngle:CGFloat! var EndAngle:CGFloat! var circleTimer:UIBezie

我想用swift制作一个小的圆形进度条

这就是我目前所拥有的

 private var Timer:CGFloat = 100;

 override func update(currentTime: CFTimeInterval) 
 {
    /* Called before each frame is rendered */
    var StartAngle:CGFloat!
    var EndAngle:CGFloat!

    var circleTimer:UIBezierPath!

    StartAngle = CGFloat(M_PI * 1.5)
    EndAngle = StartAngle + CGFloat((M_PI * 2))

    var Progress:CGFloat = (EndAngle - StartAngle) * (Timer / 100) + StartAngle

    circleTimer.addArcWithCenter(CGPointMake(200, 200), radius: CGFloat(130), startAngle: StartAngle, endAngle: Progress, clockwise: true)

    Timer--;
}
我在运行应用程序时遇到此错误

错误的指令(代码=EXC\U I386\U INVOP,子代码=0x0)

在这条线上

circleTimer.addArcWithCenter(CGPointMake(200200),半径:CGFloat(130),星形缠结:星形缠结,端角:进度,顺时针:真)

我对Swift(用其他语言编程)相当陌生,但我似乎无法理解它

谢谢
Luke

您尚未初始化
circleTimer
,因此
circleTimer
为零。您应该先初始化它,然后再调用

circleTimer.addArcWithCenter(CGPointMake(200, 200), radius: CGFloat(130), startAngle: StartAngle, endAngle: Progress, clockwise: true)
用路径初始化它

var circleTimer:UIBezierPath! = UIBezierPath()
也可以在draw rect中编写此代码

 override func drawRect(rect: CGRect) {

    /* Called before each frame is rendered */
    var StartAngle:CGFloat!
    var EndAngle:CGFloat!

    var circleTimer:UIBezierPath! = UIBezierPath()
    StartAngle = CGFloat(M_PI * 1.5)
    EndAngle = StartAngle + CGFloat((M_PI * 2))

    var Progress:CGFloat = (EndAngle - StartAngle) * (Timer / 100) + StartAngle

     //Test this working fine
    //circleTimer.addArcWithCenter(CGPointMake(50, 50), radius: CGFloat(130), startAngle: 0.0, endAngle: Progress, clockwise: true)

    circleTimer.addArcWithCenter(CGPointMake(200, 200), radius: CGFloat(130), startAngle: StartAngle, endAngle: Progress, clockwise: true)

    Timer--;
    circleTimer.lineWidth = 20;
    UIColor.redColor().setStroke()
    circleTimer.stroke()
}

真是太棒了!这并不意味着痛苦,但我如何将其绘制到场景中,我已经添加了这个circleTimer.lineWidth=15 UIColor.blackColor().setStroke()circleTimer.addArcWithCenter(CGPoint(x:50,y:50),radius:CGFloat(130),startAngle:startAngle,endAngle:Progress,顺时针:true)circleTimer.closePath()circleTimer.stroke()你想通过<代码>场景来表现什么。你想在视图或精灵工具包中画画吗?@LukeBrandonFarrell编辑了答案,让你自己来改变外观startAngle和oher代码!谢谢:)@LukeBrandonFarrell请接受答案,这将帮助他人找到解决方案。