У меня есть приложение watchOS 4, которое отображает анимацию SpriteKit (SKActions) поверх пользовательского интерфейса.Все отлично работает в симуляторе, а также на устройстве сначала пару раз, а затем через некоторое время, когда приложение находится в фоновом режиме, и оно запускается, анимации просто замирают, и блок завершения для наиболее продолжительной анимации не вызывается.Любая идея, в чем может быть проблема?
Вот как я запускаю свои действия, вызывающая сторона ожидает закрытия completion
, чтобы скрыть сцену спрайтекита:
private func runActions(with icon: SKShapeNode?, completion: @escaping () -> Void) {
if let icon = icon, let scaleAction = scaleAction, let bg = background {
self.label?.run(fadeInOutAction)
icon.run(scaleAction)
icon.run(fadeInOutAction)
bg.run(backgroundAction, completion: completion)
} else {
completion()
}
}
И да,Мне известно, что SKScene
приостанавливается, когда приложение переходит в фоновый режим.Я делаю это в willActivate
моего InterfaceController:
if scene.scene?.isPaused == true {
scene.scene?.isPaused = false
}
Я хочу подчеркнуть, что это работает в первую очередь всегда.Это начинает терпеть неудачу после того, как приложение было фоново в течение некоторого времени.Особенно, если я запустил приложение из-за усложнений и попытался немедленно запустить эти анимации, то это зависание происходит.