伙计们,我尝试在Apple's guide之后执行CABasicAnimation(仅出于测试目的)

有一段代码:

CABasicAnimation* fadeAnim = [CABasicAnimation animationWithKeyPath:@"opacity"];
fadeAnim.fromValue = [NSNumber numberWithFloat:1.0];
fadeAnim.toValue = [NSNumber numberWithFloat:0.0];
fadeAnim.duration = 5.0;
[theLayer addAnimation:fadeAnim forKey:@"opacity"];

// Change the actual data value in the layer to the final value.
theLayer.opacity = 0.0;

这表明我实际上应该在最后更改属性。但是它似乎不能正常工作(它会立即更改不透明度)-持续时间不是5(为了更好的可见性,我将其更改为5),所以动画不是CABasicAnimation而是隐式的。
只有在将动画添加到theLayer.opacity = 0.0;之前设置layer时,它才起作用。我是在做错什么还是文档中的错误?
P.S运行最新的XCode iOS 7.1模拟器。

最佳答案

添加动画之前,请更新模型层。

CABasicAnimation* fadeAnim = [CABasicAnimation animationWithKeyPath:@"opacity"];
fadeAnim.fromValue = [NSNumber numberWithFloat:1.0];
fadeAnim.toValue = [NSNumber numberWithFloat:0.0];
fadeAnim.duration = 5.0;

// Change the actual data value in the layer to the final value.
theLayer.opacity = 0.0;

[theLayer addAnimation:fadeAnim forKey:@"opacity"];

07-28 09:12