我有一个UILabel和视图上uislider。 我想用slider.range滑块是00:00:00到03:00:00设置标签的时间。 装置上滑块3 hours.and有限区间为0.5 minutes.also如何show.i希望定时器运行,即使应用程序关闭。
Answer 1:
首先,有没有办法让定时器运行你的应用程序被关闭后。 后台应用根本不允许在iPhone上。 有办法伪造它与定时器(保存时间戳的应用程序退出时,并检查它针对的时候它开始回升),但它不会处理您的计时器应用程序启动前回用完的情况下起来。
至于更新与倒计时的UILabel,一个的NSTimer可能会工作。 事情是这样的,假设你有一个计时器的NSTimer,一个int secondsLeft,和一个UILabel countdownLabel在你的类:
创建定时器:
timer = [NSTimer scheduledTimerWithTimeInterval: 1.0 target:self selector:@selector(updateCountdown) userInfo:nil repeats: YES];
该updateCountdown方法:
-(void) updateCountdown {
int hours, minutes, seconds;
secondsLeft--;
hours = secondsLeft / 3600;
minutes = (secondsLeft % 3600) / 60;
seconds = (secondsLeft %3600) % 60;
countDownlabel.text = [NSString stringWithFormat:@"%02d:%02d:%02d", hours, minutes, seconds];
}
我做我的应用程序的一个类似的东西,但没有代码得心应手现在。
Answer 2:
此代码是错误的。
timer = [NSTimer scheduledTimerWithInterval: 1.0 target:self selector:@selector(updateCountdown) userInfo:nil repeats: YES];
它应该是。
timer = [NSTimer scheduledTimerWithTimeInterval: 1.0 target:self selector:@selector(updateCountdown) userInfo:nil repeats: YES];
Answer 3:
你可以保持您的计时器的运作时,您的应用程序确实进入的背景下,
作为@shawn craver告诉ü你不能做到这一点,但是当应用程序进入后台(“未终止”),你可以做到这一点这是一个不同的事件applicationDidEnterBackground,并与你需要一些多线程GCD(盛大中央调度)。
plase参考这个链接
设置在IOS的定时器
文章来源: how to show countdown on uilabel in iphone?