2013-02-19 52 views
0

我正在使用AdWhirl在我的應用中顯示iAd和AdMob廣告。在iPad上,在橫向模式下,我創建了1024寬的AdWhirlView,但返回的第一個iAd始終是縱向寬度廣告(768)。如果我將iPad旋轉爲縱向,然後回到橫向,則該廣告在全景中正確顯示爲1024寬。與AdWhirl的首次iAd請求始終會在iPad上返回一幅肖像廣告

爲什麼橫向廣告無需旋轉即可展示?

- (void) setupAdWhirl { 
    if (self.adWhirlView == nil) { 
     CGFloat adWhirlHeight = 90.0; 

     CGSize size = self.rootViewController.view.bounds.size; 
     NSLog(@"rootVC.bounds=%@", NSStringFromCGRect(self.rootViewController.view.bounds)); 

     AdWhirlView *adWhirl = [AdWhirlView requestAdWhirlViewWithDelegate:self]; 
     adWhirl.frame = CGRectMake(0, size.height - adWhirlHeight, size.width, adWhirlHeight); 
     adWhirl.autoresizingMask = UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin; 
     NSLog(@"adWhirl.frame=%@", NSStringFromCGRect(adWhirl.frame)); 

     [self.rootViewController.view addSubview:adWhirl]; 
     self.adWhirlView = adWhirl; 
    } 
} 

這兩個日誌報表輸出如下:

rootVC.bounds={{0, 0}, {1024, 748}} 
adWhirl.frame={{0, 658}, {1024, 90}} 

所以我最初設定的adWhirlView框架爲1024,寬90的身高。但是,當它加載第一個iAd時,它調整到768寬。

回答

0

我不知道是否有一個「正確」的方式來做到這一點,但我砍了AdWhirl來源,並設法讓它按我的預期工作。

在IAD的適配器,-getAd方法,創立ADBannerView的後,添加以下代碼:

iAdView = [[ADBannerView alloc] initWithAdType:ADAdTypeBanner]; 
    iAdView.autoresizingMask = UIViewAutoresizingFlexibleWidth; 

    // Added lines below 

    if (self.adWhirlView.bounds.size.width > self.adWhirlView.bounds.size.height) { 
     iAdView.currentContentSizeIdentifier = kADBannerContentSizeIdentifierLandscape; 
    } 
    else { 
     iAdView.currentContentSizeIdentifier = kADBannerContentSizeIdentifierPortrait; 
    }