当没有网络连接时在iPhone上隐藏iAds

问题描述:

我试图在我的应用中包含iAds。当有网络连接,但是当网络不available..please找到下面的代码,并帮助me..thanks您的时间了网络成瘾者并不掩饰它工作正常..当没有网络连接时在iPhone上隐藏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); 
} 
} 

如果我正确理解你的代码,你最初显示的旗帜。这是不正确的。当您收到bannerViewDidLoadAd:后,最初将横幅移出屏幕,然后只在屏幕上移动它,并在收到bannerView:didFailToReceiveAdWithError:时退出屏幕。

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

+0

感谢在viewDidLoad中的reply..so我应该设置bannerIsVisible为NO? – racharambola 2010-09-07 21:51:10

+0

我试过了,但我认为我做了一个错误..我正在体验到你说的一切......最初有一段时间它显示为空,后来加载视图..如果你不介意,你能不能请建议我在哪里在我写的 – racharambola 2010-09-07 21:57:42

+3

的代码中进行更改,您可以在“viewDidLoad”中将您的添加离屏。如果你只有一个状态栏,那么这个位置就是'(0,460)'。然后,广告加载完成后,您可以将整个广告查看动态化为50个像素。并缩减您的内容50个像素。查看WWDC iAds会议视频和幻灯片(免费),它详细描述了这项技术。 – 2010-09-07 23:36:33

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