2014-09-27 2 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, кажется, не будет доступна в 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

Я не получаю ошибку на этой линии вообще - `CGRectGetMidX по-прежнему доступен, насколько я могу сказать:

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

Другая линия, которая дает мне ошибки это один - те, константы типа Double и должны быть преобразованы в CGFloat, а в Swift метод min не MIN:

var endAngle: CGFloat = CGFloat(-M_PI_2) + min(1.0, progress) * CGFloat(M_PI) * 2 
Смежные вопросы