我的应用以横向模式运行。我不支持纵向方向,并且在所有屏幕中,如果我将设备旋转为纵向,一切都如预期的那样在景观中。
我正在展示iAd横幅,它们看起来不错,当它们与超级视图一起旋转时,它们会旋转。关于横幅展示,一切都很好。
问题在于,当我点击它们并打开实际广告时,整个应用方向被搞砸。 iAD以纵向模式打开,它的位置错误,偏移到屏幕的一半,并且它与整个应用程序方向混淆,将其带到一个不受支持和奇怪的肖像模式。
有关如何避免这种情况的想法吗?
一些应用详情:
答案 0 :(得分:1)
我还在Cocos2d-landscape游戏中使用了iAds。对我来说,它的工作。
以下是托管的文件:Download
-(void)showBannerView
{
_adBannerViewIsVisible = true;
AppController * myDelegate = (((AppController*) [UIApplication sharedApplication].delegate));
[myDelegate.navController.view addSubview:self.adBannerView];
if (self.adBannerView)
{
[UIView animateWithDuration:0.5
delay:0.1
options: UIViewAnimationCurveEaseOut
animations:^
{
CGSize s = [[CCDirector sharedDirector] winSize];
CGRect frame = self.adBannerView.frame;
frame.origin.y = s.height - frame.size.height;
frame.origin.x = (s.width/2.0f - frame.size.width/2.0f);
self.adBannerView.frame = frame;
}
completion:^(BOOL finished)
{
}];
}
}
答案 1 :(得分:1)
您需要将AdBannerView设置为仅显示横向广告:
adBannerView.requiredContentSizeIdentifiers = [NSSet setWithObject:ADBannerContentSizeIdentifierLandscape];
adBannerView.currentContentSizeIdentifier = ADBannerContentSizeIdentifierLandscape;
这样,不应加载不支持横向的广告。请注意,这会导致填充率下降。
答案 2 :(得分:0)
这个问题让我搞砸了2天 我甚至放弃了iAd 直到我遇到同样的问题,游戏中心认证,总是以纵向打开,并以相同的方式拧紧应用程序的整个方向。
然而,我在谷歌搜索中几乎立即找到了游戏中心的解决方案。 我尝试为iAd应用相同的解决方案,但它确实有用。
主要想法是让您的应用在两者中运行 肖像和风景(在app的信息plist中)
然后在视图控制器中将优先方向设置为横向右侧,允许旋转方向并支持横向和纵向。
详细答案如下:
Gamecenter authentication in landscape only Cocos2d with CCLayer for iOS 6
特别感谢Sylvan!