带有 timeOffSet 的 CAAnimation
Posted
技术标签:
【中文标题】带有 timeOffSet 的 CAAnimation【英文标题】:CAAnimation with timeOffSet 【发布时间】:2018-03-30 10:23:28 【问题描述】:我有一个持续时间为 5.0 秒的动画。在播放动画时,我将其暂停在 2.0 秒并做一些其他事情(移动到其他视图控制器、推送、弹出...)。然后我回到这个视图控制器并从第二个 2.0 继续动画。我使用 timeOffSet = 2.0 让它工作顺利,但仍然有一个问题:它有 2 秒剩余,即动画的前 2 秒.....我怎样才能删除它?
带有timeOffSet过程的动画:
【问题讨论】:
写2个动画方法,先调用其他东西,后调用 【参考方案1】:Duplicated answer
-(void)pauseLayer:(CALayer*)layer
CFTimeInterval pausedTime = [layer convertTime:CACurrentMediaTime() fromLayer:nil];
layer.speed = 0.0;
layer.timeOffset = pausedTime;
-(void)resumeLayer:(CALayer*)layer
CFTimeInterval pausedTime = [layer timeOffset];
layer.speed = 1.0;
layer.timeOffset = 0.0;
layer.beginTime = 0.0;
CFTimeInterval timeSincePause = [layer convertTime:CACurrentMediaTime() fromLayer:nil] - pausedTime;
layer.beginTime = timeSincePause;
【讨论】:
以上是关于带有 timeOffSet 的 CAAnimation的主要内容,如果未能解决你的问题,请参考以下文章
无法控制 UITableViewCell 的子图层的动画时间
CoreAnimation confusion: CATransaction vs CATransition vs CAAnimationGroup?