我正在创建脉动动画并将其添加为imageView的子层。完成一个动作后,我需要删除动画,但是正在努力寻找方法。
这是创建图层的时间
func addPulse() {
let pulse = Pulsing(numberOfPulses: Float.infinity, radius: 140, position: imageView.center)
pulse.animationDuration = 0.8
pulse.backgroundColor = #colorLiteral(red: 0.8549019694, green: 0.250980407, blue: 0.4784313738, alpha: 1)
self.view.layer.insertSublayer(pulse, below: imageView.layer)
}
为了删除它,我使用以下代码,但是这使我的应用程序崩溃了
self.imageView.layer.sublayers = []
我尝试查看stackOverflow,这是他们建议的解决方案,但对我而言不起作用,您有什么建议吗?
答案 0 :(得分:4)
您可以尝试
self.imageView.layer.sublayers?.forEach {
if $0 is Pulsing {
$0.removeFromSuperlayer()
}
}
答案 1 :(得分:0)
您是否已经尝试过以下方法:
for (CALayer *layer in self.view.layer.sublayers) {
[layer removeFromSuperlayer];
}