伙计们,我尝试在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"];