似乎当我从 a 中删除动画CALayer
或将其设置为隐藏时,图层在被删除之前会淡出大约半秒,而我希望它在我想要它的时候也停止。
它应该在CALayer
被点击后立即停止,但是看起来像是淡出效果的东西被应用到了图层上。动画CALayer
垂直移动,当它被点击移除时,你几乎可以看到它淡出。
我需要在点击它后立即将其删除的原因是 UIImageView 将其替换为它的位置并运行关键帧图像动画。
似乎当我从 a 中删除动画CALayer
或将其设置为隐藏时,图层在被删除之前会淡出大约半秒,而我希望它在我想要它的时候也停止。
它应该在CALayer
被点击后立即停止,但是看起来像是淡出效果的东西被应用到了图层上。动画CALayer
垂直移动,当它被点击移除时,你几乎可以看到它淡出。
我需要在点击它后立即将其删除的原因是 UIImageView 将其替换为它的位置并运行关键帧图像动画。
您可以通过禁用图层操作来控制此自动动画:
[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];