【问题标题】:iAd turns white when switching view controller切换视图控制器时 iAd 变白
【发布时间】:2015-04-12 02:54:04
【问题描述】:

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

当我第一次进入标签时,iAd 显示效果很好。当我切换回一个已经加载的标签时,iAd 会正确显示一秒钟,然后变成白色。它仍然在角落显示 iAd,您仍然可以单击它,但横幅本身已消失。

我只是使用 Interface Builder 中的 iAd 组件将 iAd 嵌入到我的应用程序中。这是怎么回事?

这发生在实际设备和模拟器上。全部运行 iOS 8+。

编辑:我应该提到,如果横幅未能接收到广告,我会隐藏它。这是一个不同的问题。

【问题讨论】:

  • 从我记事起我就遇到了这个问题。还没找到解决办法

标签: ios ios8 iad


【解决方案1】:

如果横幅没有加载任何内容,您必须告诉 UI 放下横幅:

 #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% 以进行调试。

【讨论】:

  • 我实际上已经这样做了,而且它有效。问题不在于横幅没有被填充,而是即使已填充,它也会出现故障并变成白色。
猜你喜欢
  • 1970-01-01
  • 2012-04-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-05
  • 2017-12-02
相关资源
最近更新 更多