1

我正在尝试使用 CALayer 实现的 CAMediaTiming 协议来影响隐式 CALayer 动画的时间。

到目前为止,似乎我必须做

[CATransaction begin];
[CATransaction setAnimationDuration:d];
layer.frame = newFrame;
[CATransaction commit];

layer.timeOffset = -1;

为隐式动画创建 1 秒延迟

不幸的是,这里似乎发生了非常短暂的动画开始(图层移动了很小的量),然后弹回原位并等待 1 秒钟,然后才开始实际动画。

我相信这是由于将 timeOffset 信息传播到渲染树的延迟造成的。我尝试过使用 [CATransaction flush],但没有找到没有初始口吃的安排。

有没有人成功使用 CALayer 的 CAMediaTiming 方法来改变隐式动画的时间?

4

1 回答 1

1

I found http://wangling.me/2011/06/time-warp-in-animation.html quite useful when using CAMediaTiming. Especially the explanations regarding timeOffset and beginTime might be of interest to you.

于 2013-06-27T20:29:37.597 回答