2015-03-23 3 views
0

У меня простая игра, в которой, если пользователь идет на задний план, игра при запуске должна скрывать узел спрайта игрока.Сретенский узел спрайта в фоновом режиме

Мой код выглядит следующим образом:

- (void)didMoveToView:(SKView *)view 
{ 
    [super didMoveToView:view]; 

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(appDidEnterBackground:) name:UIApplicationDidEnterBackgroundNotification object:nil]; 
} 

- (void)appDidEnterBackground:(NSNotification *)notification 
{ 
    [self hidePlayerNode]; 
} 

- (void)hidePlayerNode 
{ 
    [self.playerNode runAction:[SKAction fadeOutWithDuration:0.0]]; 
} 

Проблема заключается в том, что, когда игра запускается из фона, я могу видеть узел игрок на долю секунды, а затем исчезает. Мне нужно сделать узел игрока невидимым, как только он перейдет на задний план, и пользователь не должен его видеть, когда приложение перезагружается.

Я пробовал с UIApplicationWillResignActiveNotification, но результат тот же. Кроме того, я попытался запустить код внутри метода выбора по основному потоку, но тот же результат снова.

Пожалуйста, помогите мне с этим. Заранее спасибо.

+0

Вы пробовали использовать метод applicationWillResignActive и вместо альфа-затухания использовать «playerNode.hidden = true;» ? – sangony

ответ

1

Возможно, вы видите состояние своего приложения, которое было сохранено, когда вы вошли в фон.

Документы Apple: «Когда ваш метод applicationDidEnterBackground: метод возвращает изображение, пользовательский интерфейс вашего приложения использует изображение для анимации перехода. Если какие-либо представления в вашем интерфейсе содержат конфиденциальную информацию, вы должны скрыть или изменить эти перед представлением applicationDidEnterBackground: метод возвращает. "

Смежные вопросы