Можно ли приостановить таймер, когда центр управления появится в SpriteKit? - PullRequest
0 голосов
/ 27 июня 2018

Я хотел бы знать, возможно ли приостановить таймер при активации Центра управления на iOS, в моем проекте мой таймер создает фигуры, и когда появляется центральный элемент управления, игра не останавливается и накапливает много узлов в игры.

Ответы [ 2 ]

0 голосов
/ 27 июня 2018

Вы не можете приостановить Timer, единственное, что вы можете сделать, это отследить, сколько времени прошло с .now - timer.fireDate или timer.timeInterval (все зависит от того, как вы используете таймер), отменить таймер, затем перезапустите его, когда ваше приложение снова запустится. Это настоящая боль в @ $$ и настоятельно рекомендуется не использовать. Я бы порекомендовал использовать встроенные SKActions для создания всех необходимых вам таймеров. Таким образом, когда вы приостанавливаете сцену, таймеры делают паузу с ней. Это, конечно, выходит за рамки этого вопроса.

0 голосов
/ 27 июня 2018

Для этого в UIApplicationDelegate есть 2 метода:

Вызывается при открытии центра управления: applicationWillResignActive

При закрытии: applicationDidBecomeActive

Каким-то образом при открытии / закрытии Центра уведомлений он запускает соответствующий метод дважды (с противоположным методом между ними). ​​

Но вы должны убедиться, что ваш таймер доступен из области приложения appdelegate.

...