2013-02-19 50 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; 
    }