2012-05-16 2 views
0

Я использую cocos2d в сочетании с AdMob, nomarl мое приложение отлично работает, но после попадания рекламы и возврата игры, неправильной раскладки, моя игра - пейзаж!admob click after return it неправильный макет

Вещи меняются после того, как AdMob задействован. AdMob имеет тип «видео» типа AD. После нажатия на объявление появляется всплывающее окно и воспроизводится фильм, а затем возвращается в игру. Игра меняется, изначально она является ландшафтным режимом, а после возврата из объявления кажется, что это портретный режим, и игра масштабируется, все выглядит плохо. Я попытался обновить контроллер представления/CCDirector после возврата из объявления, но он не работает.

Обходной путь: просто поверните устройство в режим ландшафтного копирования, и все снова хорошо.

Просто интересно, есть ли способ предотвратить сканирование клиентов вручную? Вы встречали это раньше?

_viewController = [[UIViewController alloc] init]; 
_viewController.view = [[CCDirector sharedDirector] openGLView]; 

_admobView = [[GADBannerView alloc] initWithAdSize:kGADAdSizeBanner]; 
_admobView.adUnitID = ADMOB_PUBLISHER_ID; 
_admobView.delegate = self; 

GADRequest *request = [GADRequest request]; 
request.testing = YES; 

[_admobView setRootViewController:_viewController]; 
[_admobView loadRequest:request]; 

[_viewController.view addSubview:_admobView]; 

ответ

0

У меня был подобный вопрос раньше, и причина в том, что я создал новый UIViewController и установить его в качестве rootViewController для просмотра AdMob - так же, как то, что вы делаете:

_viewController = [[UIViewController alloc] init]; 
_viewController.view = [[CCDirector sharedDirector] openGLView]; 
... 
[_admobView setRootViewController:_viewController]; 

Это приводит к проблемы макета при возврате из некоторых видов рекламы. То, что я делаю сейчас в моем приложении, как:

adMobView.rootViewController = [RootViewController sharedInstance]; 
[[[CCDirector sharedDirector] openGLView] addSubview:adMobView]; 

где [RootViewController sharedInstance] это метод класса, который возвращает единственный экземпляр RootViewController в приложении. Для получения дополнительной информации, пожалуйста, обратитесь к моему ответу на другой вопрос: https://stackoverflow.com/a/10222956/1241690

(для cocos2d 2.x, то вторая строка должна быть:

[[[CCDirector sharedDirector] view] addSubview:adMobView]; 

)

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