Задержка при показе кнопок UIB после представления SKScene?
Я столкнулся с задержкой / паузой, которую я не ожидал, и причина до сих пор заставляет меня чесать голову. У меня есть простая настройка игры, гдеUIViewController
показывает количество кнопок UIB [PLAY GAME] [VIEW SCORES] и т. д., которые в свою очередь представляютSKScene
Моя проблема заключается в том, что когда я пытаюсь установить видимость этих кнопок видимыми (очевидно, установлен скрытым вviewDidLoad
) отUIViewController
на показ у них уходит около 5 секунд.
@implementation ViewController
- (void)presentTitleScene {
// SHOW BUTTONS
[[self logoLabel] setHidden:NO];
[[self gameButton] setHidden:NO];
[[self scoreButton] setHidden:NO];
[[self creditsButton] setHidden:NO];
// PRESENT SCENE
SKScene *titleScene = [TitleScene sceneWithSize:[[self spriteKitView] bounds].size];
[titleScene setName:@"TITLE_SCENE"];
[titleScene setScaleMode:SKSceneScaleModeAspectFill];
[(SKView *)[self view] presentScene:titleScene];
[self setCurrentScene:titleScene];
}
@end
Что происходит, когда весь код выполняется,SKScene
представлены правильно, то примерно через 5-6 секунд кнопки появляются? Могу ли я что-нибудь сделать с этим (принудительно обновить) или это просто случай разработать его или жить с этим?
Это происходит как на симуляторе, так и на устройстве.
РЕДАКТИРОВАТЬ:Глядя на выходной журнал вы можете четко увидеть, что после звонкаpreloadTextureAtlases:withCompletionHandler:
это выполнение переходит к другому потоку. МетодpreloadTextureAtlases:withCompletionHandler:
вызывается в основном потоке, и предполагается, что он предварительно загружает textureAtlas (s) в фоновом потоке, но у меня сложилось впечатление, что завершениеHandler перезвонит в основной поток, это предположение правильно или я ошибаюсь?
Переехал, чтобы ответить ниже.