Iphone NSTimer将时间缩短秒/毫秒
我正在开发一个测验应用程序。它需要一个倒计时计时器,因为我想在75:00.00(mm:ss.ss)启动一个计时器,并通过减少1毫秒将其减少到00:00.00(mm:ss.ss)。我想显示一个警报,时间到了!当时间达到00:00.00(mm:ss.ss)时 我通过下面的链接显示时间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;
使用以下代码来减少计时器
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];}