iAd在iPad上:横向iAd未正确定位

时间:2010-11-25 18:57:47

标签: objective-c ipad iad

这仍然是一个相对较新的主题,所以不确定有多少人必须在iPad上实现iAd(iOS4.2.1)。

但基本上,我让iAd横幅以横向模式显示(并且显示正确)。唯一的问题是,当我点击“测试广告”时,它以纵向模式显示测试广告。即,该设备仍处于横向状态,但文本和iad框本身表示“这证实了测试广告正确运行”是横向的。

这是正常的吗?有没有人经历过这个? 它几乎像一个苹果虫,但我不确定......

3 个答案:

答案 0 :(得分:3)

这也发生在我身上。 Apple在iPhone iPad上的测试广告仅限于人像。 真正的广告可能支持横向模式。

答案 1 :(得分:1)

ADBannerView的requiredContentSizeIdentifiers默认为具有横向和纵向。如果您仅使用横向,则必须使用ADBannerContentSizeIdentifierLandscape创建新的NSSet

iAdView.requiredContentSizeIdentifiers = [NSSet setWithObjects:ADBannerContentSizeIdentifierLandscape, nil];

执行此操作后,测试广告会正确显示。

答案 2 :(得分:1)

我遇到了同样的问题,在我的情况下,这是因为没有在app delegate中设置rootViewController。相反,我刚刚将控制器的视图直接添加到窗口。

通过对Apple的iAdSuite中的BasicBanner示例进行一次更改,可以重现此行为。

在AppDelegate.m中更改行:

self.window.rootViewController = tvc;

为:

[self.window addSubview:tvc.view];

并且广告将始终以人像显示。将行更改回设置rootViewController,广告将适当旋转。

设置rootViewController似乎是iAd模块获取设备方向通知所必需的。

在此过程中,我注意到广告或至少是测试广告仅响应设备方向,并且在调用广告时不尊重控制器的interfaceOrientation。如果您在没有上述错误的情况下运行BasicBanner并且设备平放且应用程序处于横向模式,则广告将以纵向显示,并且在您翻转设备之前不会重新定向到横向广告。模拟器行为同样不一致。

我不知道这个弱点是否仅适用于测试广告或所有iAd广告。