在没有动画的情况下向CALayer添加子图层?

时间:2010-07-26 19:39:46

标签: objective-c core-animation calayer

如何在没有动画的情况下为 CALayer 添加子图层?通常当你添加一个“淡入”时,当你删除它时,它会“淡出”。

如何制作动画?

3 个答案:

答案 0 :(得分:6)

你试过这个:

[CATransaction begin];
[CATransaction setValue:(id)kCFBooleanTrue
                 forKey:kCATransactionDisableActions];
[layer addSublayer:sublayer];
[CATransaction commit];

来自the Apple docs

答案 1 :(得分:2)

您还可以通过在超级图层上设置操作字典来抑制隐式图层添加动画,就像我在this answer中所描述的那样:

NSMutableDictionary *newActions = [[NSMutableDictionary alloc] initWithObjectsAndKeys:[NSNull null], @"sublayers", nil];
superlayer.actions = newActions;
[newActions release];

答案 2 :(得分:0)

您可以使用

[CATransaction setAnimationDuration:0.0f];