试图在Swift中创建循环进度条

时间:2014-09-27 22:45:59

标签: ios swift cgpoint

我正在尝试在Swift中为我的应用添加循环进度条,但是我还没有找到任何Swift特定示例。因此,我找到了最简单的Objective C示例,我试图将其转换为Swift。

以下是我的示例:Using circular progress bar with masked image?

我被困在这一行:

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

CgraectGetMidX似乎在Swift中不可用。

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

    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 个答案:

答案 0 :(得分:1)

我根本没有在该行上出现错误 - 据我所知,CGRectGetMidX仍然可用:

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

给我错误的另一行是这一行 - 这些常量属于Double类型,需要转换为CGFloat,而在Swift中,方法是min而不是{ {1}}:

MIN