Iphone NSTimer将时间缩短秒/毫秒

Iphone NSTimer将时间缩短秒/毫秒,iphone,objective-c,ios5,nstimer,Iphone,Objective C,Ios5,Nstimer,我正在开发一个测验应用程序。它需要一个倒计时计时器,因为我想在75:00.00(mm:ss.ss)启动一个计时器,并通过减少1毫秒将其减少到00:00.00(mm:ss.ss)。我想显示一个警报,时间到了!当时间达到00:00.00(mm:ss.ss)时 我通过下面的链接显示时间 使用以下代码来减少计时器 double dblRemainingTime=60; //1 minute if(dblRemainingTime >0) { dblRemainingTime -= 1;

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

我通过下面的链接显示时间


使用以下代码来减少计时器

double dblRemainingTime=60; //1 minute

if(dblRemainingTime >0)
{
     dblRemainingTime -= 1;
     int hours,minutes, seconds;
     hours = dblRemainingTime / 3600;
     minutes = (dblRemainingTime - (hours*3600)) / 60;
     seconds = fmod(dblRemainingTime, 60);  
     [lblRemainingTime setText:[NSString stringWithFormat:@"%02d:%02d",minutes, seconds]];
}
else
      alert('Time up buddy');

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

声明

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

- (void)populateLabelwithTime:(int)milliseconds;
-(IBAction)start;
-(IBAction)pause;
@end
定义

- (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;

}
-(void)viewDidLoad
{
[超级视图下载];
currentTime=270000000;//自75小时起=270000000毫秒
}
-(i动作)开始{
计时器=[NSTimer scheduledTimerWithTimeInterval:.01目标:自选择器:@selector(UpdateTime:)用户信息:无重复:是];
}
-(i)暂停{
[计时器失效];
}
-(void)UpdateTime:(NSTimer*)计时器{
当前时间-=10;
[self-populateLabelwithTime:currentTime];
}
-(void)populateLabelwithTime:(int)毫秒{
整数秒=毫秒/1000;
整数分钟=秒/60;
整小时=分钟/60;
秒-=分钟*60;
分钟-=小时*60;

NSString*result1=[NSString stringWithFormat:@“%@%02dh:%02dm:%02ds:%02dms”,(毫秒)如果做了一些更改,它可以正常工作…我有一个滚动视图,其中显示时间。如果我拖动滚动视图,时间不会计算(也在后台)…我必须执行的操作…?添加此代码以在滚动期间启用计时器……………..(iAction)开始{timer=[NSTimer scheduledTimerWithTimeInterval:.01目标:自选择器:@selector(UpdateTime:)userInfo:nil repeats:YES];[nsrunlop currentRunLoop]addTimer:timer forMode:nsrunlopCommonModes];}