NSTimer以秒/毫秒减少时间

Sri*_*nth 6 iphone objective-c nstimer ios5

我正在开发一个QuiZ应用程序.它需要一个倒数计时器,因为我想在75:00.00(mm:ss.SS)启动计时器,并通过减少1毫秒将其减少到00:00.00(mm:ss.SS).我想显示Time Up的警报!当时间到达00:00.00(mm:ss.SS).

我通过以下链接显示时间

使用NSTimer的秒表错误地包括显示中的暂停时间

Sha*_*eer 13

以下是您的问题的简单解决方案.

声明

@interface ViewController : UIViewController
{
    IBOutlet UILabel * result;      
    NSTimer * timer;                
    int currentTime;
}

- (void)populateLabelwithTime:(int)milliseconds;
-(IBAction)start;
-(IBAction)pause;
@end
Run Code Online (Sandbox Code Playgroud)

定义

- (void)viewDidLoad
{
    [super viewDidLoad];

    currentTime = 270000000; // Since 75 hours = 270000000 milli seconds


}

-(IBAction)start{
   timer = [NSTimer scheduledTimerWithTimeInterval:.01 target:self selector:@selector(updateTimer:) userInfo:nil repeats:YES];

}
-(IBAction)pause{
    [timer invalidate];

}
- (void)updateTimer:(NSTimer *)timer {
    currentTime -= 10 ;
    [self populateLabelwithTime:currentTime];
     }
- (void)populateLabelwithTime:(int)milliseconds {
    int seconds = milliseconds/1000;
    int minutes = seconds / 60;
    int hours = minutes / 60;

    seconds -= minutes * 60;
    minutes -= hours * 60;

   NSString * result1 = [NSString stringWithFormat:@"%@%02dh:%02dm:%02ds:%02dms", (milliseconds<0?@"-":@""), hours, minutes, seconds,milliseconds%1000];
    result.text = result1;

}
Run Code Online (Sandbox Code Playgroud)