Скрыть iAds на iPhone, когда нет сетевого подключения - PullRequest
1 голос
/ 08 сентября 2010

Я пытаюсь включить iAds в свое приложение.Он работает нормально, когда есть сетевое соединение, но 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);
 }
}

Ответы [ 2 ]

9 голосов
/ 08 сентября 2010

Если я правильно понимаю ваш код, вы изначально показываете баннер.Это не правильно.Лучше сначала переместить баннер за экран, а затем перемещать его только на экране, когда вы получаете bannerViewDidLoadAd:, и обратно за экран, когда вы получаете bannerView:didFailToReceiveAdWithError:.

Это также имеет то преимущество, что вашвид баннера изначально не отображается пустым.Что может произойти при медленном сетевом соединении.

0 голосов
/ 17 октября 2014

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;
}
...