Удаление анимации в подслое - PullRequest
2 голосов
/ 04 июля 2019

Я создаю пульсирующую анимацию и добавляю ее в качестве подслоя 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 и это решение, которое они предлагают, но оно не работает для меня, вы предлагаете что-то?

Ответы [ 2 ]

4 голосов
/ 04 июля 2019

Вы можете попробовать

self.imageView.layer.sublayers?.forEach {
    if $0 is Pulsing {
        $0.removeFromSuperlayer()  
    }
}
0 голосов
/ 04 июля 2019

Вы уже пробовали что-то вроде этого:

for (CALayer *layer in self.view.layer.sublayers) {
    [layer removeFromSuperlayer];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...