pause or resume timer

来源:互联网 发布:js使用jsonobject 编辑:程序博客网 时间:2024/06/08 02:38
- (void)pauseTimer{    if (_timer) {        _pauseStart = [NSDate dateWithTimeIntervalSinceNow:0];        _previousFireDate = [_timer fireDate];        [_timer setFireDate:[NSDate distantFuture]];        // 停止动画        CFTimeInterval pauseTime = [_timerLayer convertTime:CACurrentMediaTime() fromLayer:nil];        _timerLayer.speed = 0.0;        _timerLayer.timeOffset = pauseTime;    }}- (void)resumeTimer{    if (_timer) {        float pauseTime = -1 * [_pauseStart timeIntervalSinceNow];        [_timer setFireDate:[_previousFireDate initWithTimeInterval:pauseTime sinceDate:_previousFireDate]];        CFTimeInterval pausedTime = [_timerLayer timeOffset];        _timerLayer.speed = 1.0;        _timerLayer.timeOffset = 0.0;        _timerLayer.beginTime = 0.0;        CFTimeInterval timeSincePause = [_timerLayer convertTime:CACurrentMediaTime() fromLayer:nil] - pausedTime;        _timerLayer.beginTime = timeSincePause;    }}
原创粉丝点击