2011-10-21 30 views
1

我試圖設置多個iAd橫幅以顯示在單個視圖中(一個位於導航欄正下方的屏幕頂部,另一個位於屏幕的最底部)。但是,我有一個問題在屏幕上和屏幕上移動。如何在一個視圖中使用多個iAd橫幅(iPhone/iPad)

我相信這是由於委託方法不知道哪個橫幅移動,但我不知道如何解決這個問題。下面是我使用目前的代碼:

- (void)createIAdBanner 
{ 
    adView = [[ADBannerView alloc] initWithFrame:CGRectZero]; 
    adView.frame = CGRectOffset(adView.frame, 0, -50); 
    adView.requiredContentSizeIdentifiers = [NSSet setWithObject:ADBannerContentSizeIdentifierPortrait]; 
    adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifierPortrait; 

    adViewTwo = [[ADBannerView alloc] initWithFrame:CGRectZero]; 
    adViewTwo.frame = CGRectOffset(adView.frame, 0, 530); 
    adViewTwo.requiredContentSizeIdentifiers = [NSSet setWithObject:ADBannerContentSizeIdentifierPortrait]; 
    adViewTwo.currentContentSizeIdentifier = ADBannerContentSizeIdentifierPortrait; 

    [self.view addSubview:adView]; 
    [self.view addSubview:adViewTwo]; 

    adView.delegate=self; 
    adViewTwo.delegate=self; 

    self.bannerIsVisible=NO; 
    self.bannerTwoIsVisible=NO; 
} 


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

    if (!self.bannerTwoIsVisible) 
    { 
     [UIView beginAnimations:@"animateAdBannerOn" context:NULL]; 
     banner.frame = CGRectOffset(banner.frame, 0, 430); 
     [UIView commitAnimations]; 
     self.bannerTwoIsVisible = YES; 
    } 
} 


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

    if (self.bannerTwoIsVisible) 
    { 
     [UIView beginAnimations:@"animateAdBannerOff" context:NULL]; 
     banner.frame = CGRectOffset(banner.frame, 0, 530); 
     [UIView commitAnimations]; 
     self.bannerIsVisible = NO; 
    } 
} 

回答

1

在委託方法你可以檢查它是關於通過簡單的比較 - 它的橫幅:

- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error 
{ 
    if (banner == adView) { 
     // do something with banner 1 
    } 
    else if (banner == adViewTwo) { 
     // do something with banner 2 
    } 
}