基本上,我有一個類,其中包含我用來顯示圓形進度條的drawRect函數。在Swift中調用類來顯示drawRect
我的問題是,我不確定如何顯示進度圈?我以前從來沒有和班級一起工作過,所以我不知道我是如何與班級互動的。
這是我的代碼:
class ProgressCircle: UIView {
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(self.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, self.bounds, UIImage(named: "RadialProgressFill").CGImage)
CGContextRestoreGState(ctx)
}
}
我有我的上述SecondViewController類這種代碼,我打算在意見(「budgetDisplayView」)的一個內顯示的圓形進度條第二視圖控制器。
我該怎麼辦?
只需將您的自定義視圖(ProgressCircle)添加到視圖層次結構中,並且UIKit將負責調用drawRect。例如在viewDidLoad中添加類似'self.view.addSubview(progressCircle)' – Clafou 2014-09-29 22:18:26
'不幸的是,這給了我錯誤'(ProgressCircle).Type不能轉換爲UIView' – user3746428 2014-09-29 22:22:22
我有一種感覺,你是混淆了類和對象,如果絕對值得做一個關於OOP概念的快速課程。上面這行應該在前面加上'let progressCircle = ProgressCircle()'來創建一個對象,然後上面的行用正確的大寫字母(progressCircle是實例,而不是ProgressCircle,它是類) – Clafou 2014-09-29 22:36:37