0

私は cocos2d を AdMob と組み合わせて使用​​していますが、私のアプリは正常に動作しますが、広告をクリックしてゲームを返した後、レイアウトが間違っていて、私のゲームは横向きです!

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];
4

1 に答える 1

0

以前も同様の問題がありましたが、その原因は、新しいものを作成して AdMob ビューと同じようUIViewControllerに設定したことでしたrootViewController-あなたがしていることと同じです:

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

これにより、ある種の広告から戻ったときにレイアウトの問題が発生します。私が今アプリでやっていることは次のようなものです:

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

whereは、アプリ内[RootViewController sharedInstance]の の唯一のインスタンスを返すクラス メソッドです。RootViewController詳細については、別の質問に対する私の回答を参照してください: https://stackoverflow.com/a/10222956/1241690

(cocos2d 2.x の場合、2 行目は次のようになります。

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

)

于 2012-05-16T05:04:08.667 に答える