创建循环进度条的问题

时间:2014-09-29 20:46:47

标签: swift drawrect

我一直在尝试在我的应用中实现循环进度条,但是我遇到了一些问题。

这是我的代码:

override func drawRect(rect: CGRect) {
    var ctx = UIGraphicsGetCurrentContext()

    var progress: CGFloat = 0.7
    var innerRadiusRatio: CGFloat = 0.5

    var path: CGMutablePathRef = CGPathCreateMutable()
    var startAngle: CGFloat = CGFloat(-M_PI_2)
    var endAngle: CGFloat = CGFloat(-M_PI_2) + min(1.0, progress) * CGFloat(M_PI * 2)
    var outerRadius: CGFloat = CGRectGetWidth(budgetDisplayView.bounds) * 0.5 - 1.0
    var innerRadius: CGFloat = outerRadius * innerRadiusRatio
    var center = CGPointMake(CGRectGetMidX(rect), CGRectGetMidY(rect))

    CGPathAddArc(path, nil, center.x, center.y, innerRadius, startAngle, endAngle, false)
    CGPathAddArc(path, nil, center.x, center.y, outerRadius, endAngle, startAngle, true)
    CGPathCloseSubpath(path)
    CGContextAddPath(ctx, path)

    CGContextSaveGState(ctx)
    CGContextClip(ctx)
    CGContextDrawImage(ctx, budgetDisplayView.bounds, UIImage(named: "RadialProgressFill").CGImage)
    CGContextRestoreGState(ctx)
}

我收到错误 - Method不会覆盖其超类中的任何方法。

感谢。

2 个答案:

答案 0 :(得分:3)

听起来你正试图从UIViewController继承,它既没有drawRect方法也没有bounds属性。你应该继承UIView。

答案 1 :(得分:2)

这似乎是在一个视图控制器中,它没有bounds属性。此代码应位于UIView子类中,因为您的drawRect:方法甚至不会被调用。