当我试图覆盖position
属性上的隐式动画时,图层会快速闪烁到目标位置,然后启动我的显式动画:
CAKeyframeAnimation* animation = [CAKeyframeAnimation animation];
animation.path = path; // some CGPath
animation.duration = 1.0;
[newTopLayer setPosition:CGPointMake(x, y)]; // Setting final values for stickness
[newTopLayer addAnimation:animation forKey:@"position"];
似乎position
键未被覆盖。为什么?
我用CATransaction
尝试过,但仍然没有运气。
更新
进一步调查表明,无论如何newTopLayer
都没有隐含动画。有关信息:它由UIView
支持。
答案 0 :(得分:0)
好的,就是这么简单:如果CALayer
由UIView
支持,则会禁用所有隐式动画。如果您需要隐式动画,请将子图层设为UIView
的图层。