У меня есть экземпляр CAEmitterLayer
, который я хочу приостановить, а затем возобновить несколько раз .
Я нашел различные способы сделать это, используя две функции расширения CAEmitterLayer
:
public func pause() {
speed = 0.0 // Freeze existing cells.
timeOffset = convertTime(CACurrentMediaTime(), from: self)
lifetime = 0.0 // Stop creating new cells.
}
и
public func resume() {
speed = 1.0
beginTime = convertTime(CACurrentMediaTime(), from: self) - timeOffset
timeOffset = 0.0
lifetime = 1.0
}
Первый случай использования emitterLayer.pause()
и emitterLayer.resume()
работает отлично.
Однако со второгоВ дальнейшем, всякий раз, когда я использую emitterLayer.pause()
, emitterCells
немного прыгает во времени.
Может кто-нибудь помочь мне решить эту проблему с прыжками, пожалуйста?