我正在尝试使用由 CALayer 实现的 CAMediaTiming 协议(protocol)来影响隐式 CALayer 动画的时间。
到目前为止,看来我必须要做
[CATransaction begin];
[CATransaction setAnimationDuration:d];
layer.frame = newFrame;
[CATransaction commit];
layer.timeOffset = -1;
为隐式动画创建 1 秒延迟
不幸的是,这里似乎发生的是非常短暂的动画开始(层移动了一点点),然后弹回原位并等待 1 秒钟,然后才开始实际的动画。
我认为这是由于将 timeOffset 信息传播到渲染树的延迟所致。我试过 [CATransaction flush],但没有找到没有初始口吃的安排。
有没有人成功地使用 CALayer 的 CAMediaTiming 方法来改变隐式动画的时间?
最佳答案
我找到了 http://wangling.me/2011/06/time-warp-in-animation.html在使用 CAMediaTiming
时非常有用。您可能会对关于 timeOffset
和 beginTime
的解释特别感兴趣。
关于ios - 使用 CALayer 的 <CAMediaTiming> 方法延迟隐式动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17032474/