定时器从00:00:00使用objective-c

时间:2014-01-29 00:50:45

标签: ios objective-c timer

我正在尝试从00:00:00(分钟:秒:毫秒)开始计时器并计数。我找到了thisthis,但我无法完成它,它会显示当前的时间和日期。

我的代码如下:

- (void)timerTicked:(NSTimer *)timer
{
    NSDate *date = [NSDate date];
    unsigned int flags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit;
    NSCalendar* calendar = [NSCalendar currentCalendar];
    NSDateComponents* components = [calendar components:flags fromDate:date];
    NSDate* dateOnly = [[calendar dateFromComponents:components] dateByAddingTimeInterval:[[NSTimeZone localTimeZone]secondsFromGMT]];

    static NSDateFormatter *dateFormatter;
    if (!dateFormatter) {
        dateFormatter = [[NSDateFormatter alloc] init];
        dateFormatter.dateFormat = @"mm:ss:SS";
    }

    self.timerLabel.text = [dateFormatter stringFromDate:dateOnly];
}

1 个答案:

答案 0 :(得分:0)

以下详细介绍了该怎么做:

创建一个NSDate类型的实例变量,用于记录开始时间。让我们调用变量startTime;

编写一个startTimer方法:

  • 将当前时间保存到startTime。
  • 启动每秒触发的计时器,或任何更新 你想要的间隔。它可以调用你的timerTicked方法。

在timerTicked方法中,将当前日期保存在本地变量" now"。

使用NSCalendar方法components:fromDate:toDate:options:计算自计时器启动以来的分钟数和秒数。

毫秒,您可能需要进行自己的计算,如下所示:

NSTimeInterval elapsedSeconds = [now timeIntervalSinceDate: startTime];
milliseconds = floor(1000*(elapsedSeconds-floor(elapsedSeconds)));