创建倒计时器

时间:2013-09-15 09:01:36

标签: objective-c timer clock

我正在使用Obc C在Xcodes中创建一个倒数计时器。我是这方面的新手,需要一些帮助我的计时器,它会从你进入的时间算起来。

现在我的代码看起来像这样:

-(void) timerRun {
    secoundCount = secoundCount - 1;
    int minuts = secoundCount / 60;
    int seconds = secoundCount - (minuts * 60);


    NSString *timerOutput = [NSString stringWithFormat:@"%2d:%.2d", minuts, seconds];
    countdownlable.text = timerOutput;

只要它从99分钟或更短时间倒计时,这个倒计时就可以完美找到。 我希望有几个小时的int,但是当我这样做时出错了,我得到一个错误。

请你解释一下我如何为这个计数器添加一个“小时”的整数

我尝试了以下但是它不起作用:

-(void) timerRun {
    secoundCount = secondCount - 1;
    int hours = secondCount / 60;
    int minuts = secondCount / 60;
    int seconds = secondCount - (minuts * 60);


    NSString *timerOutput = [NSString stringWithFormat:@"%1d:%2d:%.2d", hours, minuts, seconds];
    countdownlable.text = timerOutput;

提前致谢

2 个答案:

答案 0 :(得分:0)

你必须为明星做好准备。

我认为你的错误是逻辑错误

因为小时不等于第二次计数/ 60

int hours = minutsCount / 60;

您可以使用NSTimer

你会在这里找到它

How do i create a countdown timer in xcode 4.5

答案 1 :(得分:0)

有多种方法可以实现这一点,例如使用" modulo"操作者:

int tmp = secondCount;
int seconds = tmp % 60;
tmp /= 60;
int minutes = tmp % 60;
tmp /= 60;
int hours = tmp;

NSString *timerOutput = [NSString stringWithFormat:@"%d:%02d:%02d", hours, minutes, seconds];

此方法的优点是您可以轻松地将其扩展到更大的时间间隔, 例如:

int tmp = secondCount;
int seconds = tmp % 60;
tmp /= 60;
int minutes = tmp % 60;
tmp /= 60;
int hours = tmp % 24;
tmp /= 24;
int days = tmp;

备注:而不是在计时器回调中将剩余时间减少一秒 功能,计算它可能更精确

NSDate *now = [NSDate date];
secondCount = [destinationTime timeIntervalSinceDate:now];