我一直在尝试在我的应用中实现循环进度条,但是我遇到了一些问题。
这是我的代码:
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不会覆盖其超类中的任何方法。
感谢。
答案 0 :(得分:3)
听起来你正试图从UIViewController继承,它既没有drawRect
方法也没有bounds
属性。你应该继承UIView。
答案 1 :(得分:2)
这似乎是在一个视图控制器中,它没有bounds
属性。此代码应位于UIView
子类中,因为您的drawRect:
方法甚至不会被调用。