2014-09-27 70 views
0

我想在Swift中向我的应用程序添加一个圆形进度条,但是我一直无法找到任何Swift特定示例。因此,我找到了最简单的Objective C示例,并且我试图将它翻译成Swift。试图在Swift中创建圆形进度条

这是我继例如:Using circular progress bar with masked image?

我被困在这条线:

CGPoint center = CGPointMake(CGRectGetMidX(self.bounds), CGRectGetMidY(self.bounds)); 

CGRectGetMidX似乎并不斯威夫特可用。

这里是所有的到目前为止我的代码:

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

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

    var path: CGMutablePathRef = CGPathCreateMutable() 
    var startAngle: CGFloat = -M_PI_2 
    var endAngle: CGFloat = -M_PI_2 + MIN(1.0, progress) * M_PI * 2 
    var outerRadius: CGFloat = CGRectGetWidth(self.bounds) * 0.5 - 1.0 
    var innerRadius: CGFloat = outerRadius * innerRadiusRatio 
} 

我要去哪里错了?除了努力翻译这条线,其他线也有一些错误。

回答

1

我没有得到该线路上的错误在所有 - `CGRectGetMidX仍然是可用的,据我可以告诉:

var center = CGPointMake(CGRectGetMidX(rect), CGRectGetMidY(rect)) 

的其他线路,让我的错误是这样的一个 - 那些常数是Double类型的,并且需要被转换为CGFloat,并且在夫特该方法是不minMIN

var endAngle: CGFloat = CGFloat(-M_PI_2) + min(1.0, progress) * CGFloat(M_PI) * 2