这个苹果文档https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CoreAnimation_guide/CreatingBasicAnimations/CreatingBasicAnimations.html#//apple_ref/doc/uid/TP40004514-CH3-SW3CAAnimations和更新层树
演示了如何使用显式动画以动画的一些属性,然后立即设置该层上的属性,以便当明确的动画完成,该物业的最终价值是正确的。
但是,直接在图层上设置属性也会导致隐式动画。我觉得我在程序中看到了一个bug,在这种情况下,隐式和显式动画都在运行。
有人可以解释这是如何工作的?在示例代码中,隐式动画在设置明确的动画时会被忽略?
---更新---
所以我特别看到的问题是,我有一个动画来更改层的位置。它看起来基本上等同于苹果的示例代码
CABasicAnimation* fadeAnim = [CABasicAnimation animationWithKeyPath:@"position"];
anim.fromValue = startValue;
anim.toValue = endValue;
anim.duration = 1.0;
[theLayer addAnimation:anim forKey:@"myAnimation"];
// Change the actual data value in the layer to the final value.
position.position = endValue; // As a CGPoint
我观察毛刺是我第一次看快的位置变化(我猜是隐式动画),然后它会慢(这是我的动画)。
我刚才注意到的一件事是在我的代码中不同的是,我给我的显式动画的ID是“myAnimation”,而不是“位置”。但是这引出了另一个问题,如果你给这两个动画同一个ID(苹果示例代码中的“不透明度”),并且隐式动画被设置为第二个,为什么没有这个动画胜出?
你看到什么问题?如何(代码请)你添加动画? –
用更多的信息更新了我的问题,谢谢 –