0

我正在使用 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;

提前致谢

4

2 回答 2

0

你必须数一数。

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

因为小时不等于秒数/60

int hours = minutsCount / 60;

你可以使用 NSTimer

你会在这里找到它

如何在 xcode 4.5 中创建倒数计时器

于 2013-09-15T09:17:14.693 回答
0

有多种方法可以实现这一点,例如使用“模”运算符:

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];
于 2013-09-15T09:17:18.557 回答