我正在深入研究iOS开发,我正试图在我的一个视图中创建一个计数器。我发现NSTimer
代码每隔0.04秒就会调用一次选择器来更新UILabel
。我遇到麻烦的地方是当前时间的格式化(最初从00:00开始)。我认为最好的方法是使用NSDate
类和相关的类(NSDateFormatter
,NSDateComponents
等),但操作日期和格式真让我感到困惑并且代码很快变得笨拙。我希望有一些SO用户可以轻松使用NSDate
类,这可以帮助我找出一种简单的方法来计算计时计时器的当前时间并将其转换为NString
格式'秒:毫秒'。
如果有要求,我很乐意在NSDate
代码中发布我的初步尝试,但我最初不会因为它真的没用并且令人尴尬:)
答案 0 :(得分:3)
如果您只想显示自启动计时器以来经过的时间,您可以将开始日期存储在某处(例如,startDate变量)并使用当前日期计算时间间隔。以下内容应该有效:
NSTimeInterval passed = [[NSDate date] timeIntervalSinceDate: startDate];
double intPart;
double fract = modf(passed, &intPart);
label.text = [NSString stringWithFormat:@"%d:%.2f", (int)intPart, fract];