【问题标题】:Resume NSTimer when view loads back当视图加载回来时恢复 NSTimer
【发布时间】:2014-10-14 23:40:29
【问题描述】:

所以我有一个视图,上面有一个计时器。因此,当您按下“开始”时,NSTimer 会随着时间的流逝开始更新 UILabel。现在,当您按回上一个视图时,我会存储计时器的当前持续时间,当我重新加载此视图时,我想再次启动 NSTimer,但这次我想显示已经过去的时间。

例如,

开始计时器:0:0:0 回压时间:0:0:10 当我在 30 秒后回到视图时,现在 NSTimer 从:0:0:10 开始,而它应该在 0:0:40

这是我计算恢复时间的方式:

NSDate *resumeDate = [today dateByAddingTimeInterval:interval];

知道如何获得正确的时间戳吗?

【问题讨论】:

    标签: ios objective-c nstimer


    【解决方案1】:

    NSTimer 不能“重新启动”。启动计时器后,您所能做的就是让它运行或停止。

    您必须使用新的时间戳创建一个新的 NSTimer 对象。

    至于如何添加时间戳,NSTimeInterval 数据类型是标准 C double 值的别名。所以你可以这样做:

    interval += 4.2 // add 4.2 seconds to the interval
    

    【讨论】:

      【解决方案2】:

      您不能暂停计时器,只能停止它。所以如果你想“Resume NSTimer”,你只能新建一个和你之前的定时器一样的定时器,让它运行。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-01-08
        • 2011-06-29
        相关资源
        最近更新 更多