CABasicAnimation电流经过的时间(CABasicAnimation current e

2019-08-17 03:08发布

我只是重写从哑while循环相当大的动画(射击的drawRect:X次),这是我想不通的最后一件事情..

我怎样才能让我的动画的当前经过的时间? 我知道如何获得当前CFTimeInterval( 有没有办法暂停CABasicAnimation? ):

CFTimeInterval currentTime = [self.multiplierLayer convertTime:CACurrentMediaTime() fromLayer:nil];

但我怎么可以用这个来计算的那一刻起我开始动画当前经过的时间? 看来,BEGINTIME始终是0.0,我必须设置那一刻我的动画开始,然后从中提取BEGINTIME的currentTime的?

我很抱歉,如果这件事情简单的说我俯瞰,我刚开始使用的Core Animation昨天。 :)

编辑:设置BEGINTIME是不是做到这一点,真的在这里损失。

Answer 1:

一个可能更简单的方法做你想做的是当您创建CABasicAnimation明确设定的起始时间,如:

basicAnimation.beginTime = CACurrentMediaTime();

后来,你可以计算出多少时间已经过去:

CFTimeInterval elapsedTime = CACurrentMediaTime() - basicAnimation.beginTime;

并打通与百分比:

progress = elapsedTime / basicAnimation.duration;

(该代码会稍微更复杂,如果你有一个timeOffset或类似的东西。)



文章来源: CABasicAnimation current elapsed time