Cocoa touch AVSynchronizedLayer子层动画不';我跟不上看电影的时间
我正在使用AVSynchronizedLayer沿路径设置CALayer位置的动画。由于层的计时与AVPlayerItem匹配,因此层在播放视频时会正确跟踪视频中的项目Cocoa touch AVSynchronizedLayer子层动画不';我跟不上看电影的时间,cocoa-touch,core-animation,avfoundation,Cocoa Touch,Core Animation,Avfoundation,我正在使用AVSynchronizedLayer沿路径设置CALayer位置的动画。由于层的计时与AVPlayerItem匹配,因此层在播放视频时会正确跟踪视频中的项目 我想做的是在图层上还有一个单独的不透明度/旋转动画,但我希望它的计时独立于视频。是否有任何方法可以替代此设置?唯一的方法是使用Cadisplay链接手动设置不透明度/旋转的动画,并在不使用核心动画的情况下插入值 startTimestamp = CACurrentMediaTime(); CADisplayLink *displ
我想做的是在图层上还有一个单独的不透明度/旋转动画,但我希望它的计时独立于视频。是否有任何方法可以替代此设置?唯一的方法是使用Cadisplay链接手动设置不透明度/旋转的动画,并在不使用核心动画的情况下插入值
startTimestamp = CACurrentMediaTime();
CADisplayLink *displayLink = [CADisplayLink displayLinkWithTarget:self
selector:@selector(animate:)]
[displayLink addToRunLoop:[NSRunLoop currentRunLoop]
forMode:NSDefaultRunLoopMode];
...
- (void)animate:(CADisplayLink *)link {
float duration = 1.0;
float dt = (link.timestamp - startTimestamp) / duration;
// Done?
if (dt > 1.0) {
[link invalidate];
return;
}
// Disable CoreAnimation implicit animations
[CATransaction begin];
[CATransaction setDisableActions:YES];
layer.opacity = dt;
[CATransaction commit];
}