如何制作一个在Objective-C中不断更新的UILabel

时间:2011-07-14 05:27:50

标签: iphone objective-c timer uilabel updating

我正在寻找UILabel显示计时器的当前进度。现在为了得到当前时间,我打电话给[timer1 timeLeft];,返回int。通过这种方式,我可以在一瞬间更新标签ONCE。我可以以什么方式不断更新标签(mainLabel),以便始终显示当前的计时器进度,同时节省资源?

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

对倒数计时器使用以下代码。

dblElapsedSeconds=0.0; //Declare this in header
tmrElapsedTime = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(updateElapsedTime) userInfo:nil repeats:YES]; //Declare timer variable in header

-(void)updateElapsedTime
{
    dblElapsedSeconds += 1;
    //double seconds = [[NSDate date] timeIntervalSinceDate:self.startTime];
    int hours,minutes, lseconds;
    hours = dblElapsedSeconds / 3600;
    minutes = (dblElapsedSeconds - (hours*3600)) / 60;
    lseconds = fmod(dblElapsedSeconds, 60); 
    [lblTimeElapsed setText:[NSString stringWithFormat:@"%02d:%02d",minutes, lseconds]];
}