У нас есть база кода, которая была написана и выпущена в 2013 году, но в iOS 9 приложение перестает меняться между SKScene
, когда сообщение presentScene:transition:
отправлено на наш SKView
. SKScene
принимает сообщение didMoveToView:
, но сама сцена никогда не отображается на экране.SpriteKit SKView перестает переходить между сценами в iOS 9
Вот что мы пробовали:
- Отключение
Metal
черезInfo.plist
- Использование
[SKTransition transitionWithCIFilter:duration:]
вместо предопределенных анимации - Tweaking
zPosition
- Переключение на регулярные
UIView
анимации (это сделали нашиSKNode
s исчезают) - Убедитесь, что транси Метод Тиона не дозвонился более чем один раз
- Явных установок
pausesOutgoingScene
вYES
наSKTransition
Ни один из вышеупомянутых попыток исправила проблему. Обратите внимание, что все переходы правильно в прошивкой 8
Ниже приведен пример кода, который не работает:
-(BOOL)presentTitle {
if (!titleSceneLoaded) {
return NO;
}
[skView presentScene:titleScene transition:[SKTransition fadeWithDuration:1.0]];
return YES;
}
Изменение его это делает его работу еще раз (без переходов):
-(BOOL)presentTitle {
if (!titleSceneLoaded) {
return NO;
}
[skView presentScene:titleScene];
return YES;
}
Любые предложения о том, как найти/исправить/устранить ошибку?
Можете ли вы обновить свой вопрос кодом, используемым для перехода? Кроме того, «не переходя», вы имеете в виду, что вы получаете ошибки или ничего не происходит вообще? Вы уверены, что код выполняется вообще? – Whirlwind
@Whirlwind спасибо за комментарий, я обновил вопрос с этими подробностями. Код определенно выполнен (проверен через точку останова). –
Ну его определенно странно, потому что его не происходит на iOS8 ...Но это необязательно должно быть ошибкой ... Вы пытались установить fadeWithDuration на более высокое значение, скажем 5 и посмотреть, работает ли это так? Согласно этому сообщению http://stackoverflow.com/a/24016057/3402095, если сцена (TitleScene в вашем случае) ресурс тяжелый, часть перехода может быть пропущена ... – Whirlwind