我有一个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
跳跃的时间都会稍微向前一点。
有人可以帮我解决这个跳跃问题吗?