切换视图控制器时iAd变为白色

时间:2015-04-11 16:05:17

标签: ios ios8 iad

我有一个使用UITabBar的应用。每个选项卡在其视图底部显示一个iAd。

当我第一次访问标签时,iAd显示效果很好。当我切换回已经加载的标签时,iAd会正确显示一秒钟,然后变为白色。它仍然在角落里显示iAd,你仍然可以点击它,但横幅本身就消失了。

我只是使用Interface Builder中的iAd组件在我的应用中嵌入了iAd。这是怎么回事?

这发生在实际设备和模拟器上。所有都在运行iOS 8 +。

修改:我应该提一下,如果收不到广告,我会隐藏横幅广告。这是一个不同的问题。

1 个答案:

答案 0 :(得分:0)

如果没有加载任何内容,您必须告诉用户界面删除横幅:

 #pragma mark - iAd support

- (void)bannerViewDidLoadAd:(ADBannerView *)banner
{
    if (!bannerIsVisible)
    {
        // If banner isn't part of view hierarchy, add it
        if (adBanner.superview == nil)
        {
            [self.view addSubview:adBanner];
        }

        [UIView beginAnimations:@"animateAdBannerOn" context:NULL];

        [UIView commitAnimations];

        bannerIsVisible = YES;
    }
}

- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error
{
    NSLog(@"Failed to retrieve ad");

    //Move the ad off screen
    [UIView beginAnimations:@"animateAdBannerOff" context:NULL];

    adBanner.frame = CGRectOffset(adBanner.frame, 0, adBanner.frame.size.height);

    [UIView commitAnimations];

    //Hide it anyway
    bannerIsVisible = NO;

}

此外,您可以进入模拟器或设备中的开发人员设置,并将iAd填充率更改为100%以进行调试。