我使用cocos2d结合AdMob,nomarl我的应用程序工作很棒,但是在点击广告并返回游戏后,布局错误,我的游戏就是风景!
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 :(得分: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];
其中[RootViewController sharedInstance]
是一个类方法,它返回应用程序中唯一的RootViewController
实例。有关详细信息,请参阅我对其他问题的回答:https://stackoverflow.com/a/10222956/1241690
(对于cocos2d 2.x,第二行应为:
[[[CCDirector sharedDirector] view] addSubview:adMobView];
)