1

我正在尝试在我的应用中包含 iAd。当有网络连接时它工作正常,但当网络不可用时 iAds 不会隐藏..请找到下面的代码并帮助我..谢谢您的时间..

我在 viewDidLoad 中包含了这段代码

static NSString * const kADBannerViewClass = @"ADBannerView";
  if (NSClassFromString(kADBannerViewClass) != nil) {
   if (self.adView == nil) {
    self.adView = [[[ADBannerView alloc] init] autorelease];
    self.adView.delegate = self;
    self.adView.frame = CGRectMake(0,355,320,60);
    self.adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifier320x50;
   }
  }
  [self.view addSubview:self.adView];

委托方法:

- (void)bannerViewDidLoadAd:(ADBannerView *)banner
{
 if (!self.bannerIsVisible) {
  [UIView beginAnimations:nil context:NULL];
  banner.frame = CGRectOffset(banner.frame, 0,10);
  [UIView commitAnimations];
  self.bannerIsVisible = YES;
 }
}

- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error
{
 if (self.bannerIsVisible) {
  [UIView beginAnimations:nil context:NULL];
  banner.frame = CGRectOffset(banner.frame, 0, -10);
  [UIView commitAnimations];
  self.bannerIsVisible = NO;
  NSLog(@"%@",error);
 }
}
4

2 回答 2

9

如果我正确理解您的代码,您最初会显示横幅。这是不正确的。最好先将横幅移出屏幕,然后仅在收到时将其移到屏幕上,然后在收到时将其bannerViewDidLoadAd:移出屏幕bannerView:didFailToReceiveAdWithError:

这还有一个好处是您的横幅视图最初不会显示为空。如果网络连接速度较慢,可能会发生这种情况。

于 2010-09-07T21:44:05.500 回答
0

You can do like this

Hide banner during viewdidload and write this in .m file.

-(void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error{
    NSLog(@"Error loading iAd");
}

-(void)bannerViewDidLoadAd:(ADBannerView *)banner{
    NSLog(@"Ad loaded");
    self.banner.hidden = NO;
}

-(void)bannerViewWillLoadAd:(ADBannerView *)banner{
    NSLog(@"Ad will load");
    self.banner.hidden = NO;
}

-(void)bannerViewActionDidFinish:(ADBannerView *)banner{
    NSLog(@"Ad did finish");
    self.banner.hidden = NO;
}
于 2014-10-17T07:27:06.767 回答