2013-07-19 3 views
-1

Я хотел бы взять UIProgressView и связать его с NSTimer (20s) и плавно прокрутить индикатор хода с таймером. Кажется, что информация, которую я нашел на этом, не совсем согласна со мной.Задний индикатор выполнения (обратный отсчет)

Может ли кто-нибудь сказать мне, как это сделать?

+0

Какая часть может» Вы выяснили? Заставить его вернуться назад? Как работает таймер? –

+0

Да, я попытался связать эти два безуспешно. Я знаю, как работает таймер, но я новичок в представлении прогресса, поэтому я не знаю, как заставить его вернуться назад вперед или вперед. – Maegan

+0

Вы не должны использовать индикатор выполнения для чего-то вроде обратного отсчета. Это _progress bar_ не «панель обратного отсчета». Вероятно, пользователи будут сбиты с толку, когда они вернутся назад. – CouchDeveloper

ответ

-1

Попросите NSTimer вызвать функцию, с

#define TIMER_INTERVAL 0.05f 

[NSTimer scheduledTimerWithTimeInterval:TIMER_INTERVAL 
    target:self 
    selector:@selector(timerMethod:) 
    userInfo: [NSNumber numberWithFloat:1.0f] 
    repeats:YES]; 

И тогда в вашей функции, обновите UIProgressView основано на свойстве USERINFO в NSTimer, например, так:

-(void) timerMethod: (NSTimer *)timer 
{ 
    float progress = timer.userInfo.floatValue; 
    [progressView setProgress:progress animated:YES]; 

    if (progress <= 0.0f) 
     [timer invalidate]; 
    else 
     timer.userInfo = [NSNumber numberWithFloat:(progress - (1.0f/20.0f)*TIMER_INTERVAL)]; 
} 
+0

Mono guy или просто опечатки? ('.Invalidate();' и 'NumberWithFloat:' и 'if (float <= 0.0f)') –

+0

Typos. Ага. Просто опечатки. –

+0

@PatLillis _Спасибо! _ – Maegan