2010-09-07 44 views
1

我試圖在我的應用中包含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); 
} 
} 

回答

9

如果我正確理解你的代碼,你最初顯示的旗幟。這是不正確的。當您收到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

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