我正在尝试使用 CALayer 实现的 CAMediaTiming 协议来影响隐式 CALayer 动画的时间。
到目前为止,似乎我必须做
[CATransaction begin];
[CATransaction setAnimationDuration:d];
layer.frame = newFrame;
[CATransaction commit];
layer.timeOffset = -1;
为隐式动画创建 1 秒延迟
不幸的是,这里似乎发生了非常短暂的动画开始(图层移动了很小的量),然后弹回原位并等待 1 秒钟,然后才开始实际动画。
我相信这是由于将 timeOffset 信息传播到渲染树的延迟造成的。我尝试过使用 [CATransaction flush],但没有找到没有初始口吃的安排。
有没有人成功使用 CALayer 的 CAMediaTiming 方法来改变隐式动画的时间?