看起来,当我从CALayer
中移除动画或将其设置为隐藏时,在删除图层之前,该图层在约半秒内淡出,而我希望它也停止,当我也想要它。去除图层在Core Animation中被移除或隐藏时的不透明度和时间间隔
只要点击了CALayer
,它就应该停止,但似乎喜欢淡入淡出的效果应用于图层。动画垂直移动CALayer
,当它在水龙头上被移除时,你可以看到它淡出。
我需要它在被点击时被移除的原因是因为UIImageView将其替换为它的位置并运行关键帧图像动画。
看起来,当我从CALayer
中移除动画或将其设置为隐藏时,在删除图层之前,该图层在约半秒内淡出,而我希望它也停止,当我也想要它。去除图层在Core Animation中被移除或隐藏时的不透明度和时间间隔
只要点击了CALayer
,它就应该停止,但似乎喜欢淡入淡出的效果应用于图层。动画垂直移动CALayer
,当它在水龙头上被移除时,你可以看到它淡出。
我需要它在被点击时被移除的原因是因为UIImageView将其替换为它的位置并运行关键帧图像动画。
您可以通过disabling layer actions控制这种自动动画:
[CATransaction begin];
[CATransaction setValue:(id)kCFBooleanTrue
forKey:kCATransactionDisableActions];
[aLayer removeFromSuperlayer];
[CATransaction commit];
现在没关系,我想最好的办法是有效地抵消母公司层的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];
它似乎没有工作,我的动画是一个遵循的路径'CAKeyFrameAnimation' - 但我认为这不应该是个问题吗? – 2012-07-07 20:28:31
我不确定为什么禁用你的行为,如你在其他答案中所做的,与按照我描述的方式禁用它们会有所不同。奇! – 2012-07-07 20:46:19
这就是我的想法,我也看了你发给我的代码和链接,因为它是一个错字或什么的,但一切都好,其他人似乎使用相同的代码来解决同一个问题,它必须是问题在我的结尾某处 – 2012-07-07 21:56:40