2011-11-04 51 views
-1
- (void)viewDidLoad 
{ 

    adView = [[ADBannerView alloc] initWithFrame:CGRectZero]; 
    adView.requiredContentSizeIdentifiers = [NSSet setWithObject:ADBannerContentSizeIdentifierPortrait]; 
    adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifierPortrait; 
    CGRect adFrame = adView.frame; 
    adFrame.origin.y = self.view.frame.size.height-adView.frame.size.height; 
    adView.frame = adFrame; 
    [self.view addSubview:adView]; 

} 


- (void)bannerViewDidLoadAd:(ADBannerView *)banner 
{ 
    if (!self.bannerIsVisible) 
    { 
     self.bannerIsVisible = YES; 
    } 
} 

- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error 
{ 
    if (self.bannerIsVisible) 
    { 

     self.bannerIsVisible = NO; 
    } 

回答

2

有四件事。首先,您应该将banner放置在viewDidLoad方法的屏幕外,因为它会在第一次启动时显示空帧,并且很可能因此而被拒绝。

其次,您正在设置您的横幅视图不正确。我认为该框架仍然是CGZero。第三,你没有设置bannerView的委托。请尝试以下操作:

-(void)viewDidLoad{ 
    CGRect frame=CGRectZero; 
    frame.size = [ADBannerView sizeFromBannerContentSizeIdentifier:ADBannerContentSizeIdentifierPortrait]; 
    // Place frame at the bottom edge of the screen out of sight 
    frame.origin = CGPointMake(0.0, CGRectGetMaxY(self.view.bounds)); 

    // Now to create and configure the banner view 
    ADBannerView *adView = [[ADBannerView alloc] initWithFrame:frame]; 
    adView.requiredContentSizeIdentifiers = [NSSet setWithObject:ADBannerContentSizeIdentifierPortrait]; 
    // Set the delegate to self, so that we are notified of ad responses 
    adView.delegate = self; 
    [self.view addSubview: adView]; 
} 

第四,在你的bannerViewDidLoadAd:方法你是不是动画横幅广告到位。试试这个:

- (void)bannerViewDidLoadAd:(ADBannerView *)banner 
{ 
    // Get a brand new frame 
    CGRect newFrame=CGRectZero; 
    CGPoint frameOrigin=CGPointZero; 
    // Set the origin 
    frameOrigin=CGPointMake(0.0, CGRectGetMaxY(self.view.bounds)); 
    newFrame.origin=frameOrigin; 

    // Set the size 
    newFrame.size=[ADBannerView sizeFromBannerContentSizeIdentifier:ADBannerContentSizeIdentifierPortrait]; 

    CGFloat bannerHeight = newFrame.size.height; 
    CGFloat bannerOffset=0.0; 

    // Determine where the new frame should be 
    if (!self.bannerIsVisible) 
    { 
     // It should be visible, raise it up 
     bannerOffset=-bannerHeight; 
    } 

    CGRect offSetRect=CGRectOffset(newFrame,0.0f,bannerOffset); 
     [UIView animateWithDuration:0.2 
         animations:^{banner.view.frame=offSetRect} 
         completion:^(BOOL finished){ 
          if (bannerOffSet<0){ 
           self.bannerIsVisible=YES; 
          }else{ 
           self.bannerIsVisible=NO; 
          } 
         } 
     ]; 

} 

当然,如果旗帜,是应该被放置在屏幕的上方,你可以大概判断出事情需要如何进行修改,但是这让你在正确的方向前进。

祝你好运

0

不知道通过阅读您的问题,但请注意苹果模拟iAds不可用。有时候你需要在样本广告出现之前尝试多次。

+0

它从不显示 – jini