iOS中的倒计时计时器,根据经过的时间
我在这里找到了很多关于在iOS中实现倒计时的问题和答案,但还没有人回答我的问题 我想做的是,当用户按下一个按钮时,它会保存他按下按钮的准确时间,并倒计时6小时。 我让NSTimer触发一个方法,如果计数器达到未来的结束时间,则每1秒计算一次,并相应地在计数器上显示它 到目前为止,我试图做的是保存用户按下按钮的准确时间,同时找出存储在名为futureTime变量中的倒计时结束时间(以毫秒为单位),然后比较两者(startTime和futureTime) 很明显,它工作得不太好,也不准确 有什么建议吗?还是更好的方法iOS中的倒计时计时器,根据经过的时间,ios,xcode,Ios,Xcode,我在这里找到了很多关于在iOS中实现倒计时的问题和答案,但还没有人回答我的问题 我想做的是,当用户按下一个按钮时,它会保存他按下按钮的准确时间,并倒计时6小时。 我让NSTimer触发一个方法,如果计数器达到未来的结束时间,则每1秒计算一次,并相应地在计数器上显示它 到目前为止,我试图做的是保存用户按下按钮的准确时间,同时找出存储在名为futureTime变量中的倒计时结束时间(以毫秒为单位),然后比较两者(startTime和futureTime) 很明显,它工作得不太好,也不准确 有什么建议
谢谢:)您只需要一个倒计时计时器,在这种情况下,您可以执行以下操作:
@implementation AppDelegate{
NSTimer *timer;
NSInteger totalSeconds;
}
-(void)showTime{
NSLog(@"%ld",totalSeconds--);
if (totalSeconds==0){
NSLog(@"6 hours!!! Time over.");
[timer invalidate];
}
}
- (IBAction)countDown:(id)sender {
totalSeconds = 6*60*60; //6 hours * 60 minutes * 60 seconds
timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(showTime) userInfo:nil repeats:YES];
}
@end
你可能想使用其他东西,因为不能保证你的应用程序在6小时后仍能运行,而且当应用程序在后台时计时器也不会启动。看看本地通知(UILocalNotification)。我会安排一个推送通知,在6小时结束时提醒用户。这是一个简单的方法,但它不会工作,因为当应用程序进入后台时,倒计时会暂停。。。这就是为什么我需要计算时间范围的原因。@Pro5per:哦,如果是这样的话,那么你还需要检查其他情况,比如手机关机。因此,我建议您将时间保存在userdefaults中,并在应用程序启动或激活后继续轮询。没错,但为此,我需要一种方法来计算自存储在NSUserDefaults中的“startTime”以来经过的时间。这就是它变得棘手的地方:(
@implementation AppDelegate{
NSTimer *timer;
NSInteger totalSeconds;
}
-(void)showTime{
NSLog(@"%ld",totalSeconds--);
if (totalSeconds==0){
NSLog(@"6 hours!!! Time over.");
[timer invalidate];
}
}
- (IBAction)countDown:(id)sender {
totalSeconds = 6*60*60; //6 hours * 60 minutes * 60 seconds
timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(showTime) userInfo:nil repeats:YES];
}
@end