0

所以我遵循了一些关于如何集成 iAds 的教程,最后设法让它工作,但只是视觉上的。我的意思是我在我的 iPhone 应用程序上看到了广告,我可以点击它并查看测试信息,但没有一个事件被触发。下面是我的事件处理程序代码,有什么我应该检查的吗?

- (void)bannerViewDidLoadAd:(ADBannerView *)banner
{
    NSLog(@"--- bannerViewDidLoadAd ---");
    NSLog(@"self.isBannerVisible: %@", self.isBannerVisible);

    if(!self.isBannerVisible)
    {
        [UIView beginAnimations:@"animatedAdBannerOn" context:NULL];

        self.banner.frame = CGRectOffset(self.banner.frame, 0.0, self.bannerVisibleY);
        self.header.frame = CGRectOffset(self.header.frame, 0.0, self.headerWithBannerY);

        [UIView commitAnimations];
        self.isBannerVisible = YES;
    }
}


- (void)bannerView:(ADBannerView *)banner 
    didFailToReceiveAdWithError:(NSError *)error
{
    NSLog(@"--- bannerView ---");
    NSLog(@"error: %@", error);
    NSLog(@"self.isBannerVisible: %@", self.isBannerVisible);

    if(self.isBannerVisible)
    {
        [UIView beginAnimations:@"animatedAdBannerOff" context:NULL];

        self.banner.frame = CGRectOffset(self.banner.frame, 0.0, self.bannerHiddenY);
        self.header.frame = CGRectOffset(self.header.frame, 0.0, self.headerNoBannerY);

        [UIView commitAnimations];
        self.isBannerVisible = NO;
    }
}
4

1 回答 1

2

放入 header 仅声明此 ViewController 符合 ADBannerViewDelegate 协议。您仍然需要实际设置 ADBannerView 的委托属性。如果您使用的是 .nib,请控制从横幅拖动到文件所有者并选择委托。

通常,如果您的委托回调没有被调用,这就是问题所在。

于 2012-05-04T21:44:04.023 回答