2013-06-23 3 views
0

Я новичок в программировании на iOS, и у меня есть вопрос: Я хочу сделать своего рода пользовательский индикатор выполнения. Я создал 2 UIView с, один над другим и анимированные передний UIView с этим кодом:Анимация Текст UILabel

[UIView animateWithDuration:1.5f delay:1.0f options:UIViewAnimationOptionCurveEaseInOut animations:^{ 
     [barCima setFrame:CGRectMake(10, 300, value, 30)]; 
    } 
        completion:nil]; 

Но теперь, я хотел бы сделать что-то другое. Я хочу, чтобы в то время как ширина полосы возрастала, появляется UILabel с текущим значением. Пример: я установил value в 300. Пока происходит анимация, UILabel показывает прогресс, пока не достигнет 300 (1, 2, 3, 4, 5, 6, 7, ..., 300).

ответ

2

Вам нужен NSTimer, который срабатывает каждую секунду или около того, и счетчик. Всякий раз, когда срабатывает NSTimer, счетчик увеличивается, и текст UILabel будет обновлен. Это должно выглядеть так:

int _counter; // An instance var 

self.timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timerFired) userInfo:nil repeats: YES]; 
// Be sure you call [self.timer invalidate] when you don't need it anymore 

... 

-(void)timerFired { 
    ++ _counter; 
    self.label.text = [NSString stringWithFormat:@"%i", _counter]; 
} 

Удачи, что я не знаю, для чего вы используете такой индикатор прогресса!

+0

спасибо! :) Я не использую индикатор выполнения, потому что хочу оживить с помощью UIViewAnimationOptionCurveEaseIn. Кстати, разве нет, если можно применить такой эффект на индикатор прогресса? –

+0

За сценой Core Animation используется [кубический Безье] (http://en.wikipedia.org/wiki/B%C3%A9zier_curve#Cubic_B.C3.A9zier_curves), который представлен с помощью функции [CAMediaTimingFunction] (https: //developer.apple.com/library/mac/#documentation/Cocoa/Reference/CAMediaTimingFunction_class/Introduction/Introduction.html). Вы можете сделать то же самое с вашим индикатором выполнения, нужно немного исследований, некоторой математики, но не слишком сложно. –

Смежные вопросы