如何阻止CALayers动画?

时间:2010-08-11 16:07:15

标签: iphone objective-c uiview core-animation calayer

我在视图中创建了一堆子图层,用图形填充每个子图层,因此它们实际上是精灵。但是,当我致电[lineLayer setValue:[NSNumber numberWithFloat:0.5] forKeyPath:@"transform.scale"]时,它似乎“补间”到该尺寸,而不是仅仅以新尺度出现。

有没有办法关掉这种行为?我只是想直接改变比例。

谢谢!

: - 乔

2 个答案:

答案 0 :(得分:12)

啊,我刚刚回答了我自己的问题......我一直在这里做这个!

来自帮助:

  

您可以暂时禁用图层   更改图层属性时的操作   通过设置值的值   交易的   kCATransactionDisableActions为true。   在范围内进行的任何更改   该交易不会导致   动画发生。清单2显示   一个禁用淡入淡出的示例   删除时发生的动画   aLayer来自可见的图层树。

[CATransaction begin];
[CATransaction setValue:(id)kCFBooleanTrue
                 forKey:kCATransactionDisableActions];
[aLayer removeFromSuperlayer];
[CATransaction commit];

答案 1 :(得分:10)

另外,为清洁起见,请使用以下行:

[CATransaction setDisableActions:YES];  

代替这一个:

[CATransaction setValue:(id)kCFBooleanTrue
               forKey:kCATransactionDisableActions];