2013-07-19 52 views
-1

我想要一个UIProgressView并将其与NSTimer(20s)连接起来,并且可以让计时器顺利进行“倒计时”进度条。似乎我在这方面找到的信息与我并不完全一致。向后进度条(倒计时)

谁能告诉我如何做到这一点?

+0

哪一部分可以”你知道吗?让它倒退?计时器如何工作? –

+0

是的,我试过将两个链接连接失败。我知道一个计时器是如何工作的,但我对进度观点很陌生,所以我不知道如何让它倒退或前进。 – Maegan

+0

您不应该使用进度条进行倒计时等操作。这是一个_progress栏_不是“倒计时栏”。用户在倒退时可能会感到困惑。 – 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基础上的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

单身男人或只是拼写错误? ('.Invalidate();'和'NumberWithFloat:'和'if(float <= 0.0f)') –

+0

错别字。对。只是错别字。 –

+0

@PatLillis _谢谢你!! _ – Maegan