0

似乎当我从 a 中删除动画CALayer或将其设置为隐藏时,图层在被删除之前会淡出大约半秒,而我希望它在我想要它的时候也停止。

它应该在CALayer被点击后立即停止,但是看起来像是淡出效果的东西被应用到了图层上。动画CALayer垂直移动,当它被点击移除时,你几乎可以看到它淡出。

我需要在点击它后立即将其删除的原因是 UIImageView 将其替换为它的位置并运行关键帧图像动画。

4

2 回答 2

0

您可以通过禁用图层操作来控制此自动动画:

[CATransaction begin];
[CATransaction setValue:(id)kCFBooleanTrue
                 forKey:kCATransactionDisableActions];
[aLayer removeFromSuperlayer];
[CATransaction commit];
于 2012-07-07T18:23:51.090 回答
0

现在没关系,我认为最好的方法是有效地取消action父层的属性。

parentLayer.actions = [[NSMutableDictionary alloc] initWithObjectsAndKeys:
                            [NSNull null], @"onOrderIn",
                            [NSNull null], @"onOrderOut",
                            [NSNull null], @"sublayers",
                            [NSNull null], @"contents",
                            [NSNull null], @"bounds",
                            nil];

[childLayer removeFromSuperlayer];

就我而言,我只需要以下中的“子层”数据NSDict

parentLayer.actions = [[NSMutableDictionary alloc] initWithObjectsAndKeys: [NSNull null], @"sublayers",
                            nil];

[childLayer removeFromSuperlayer];
于 2012-07-07T20:41:29.570 回答