Ios AdWhirl的第一个iAd请求总是在iPad上返回一个肖像广告

Ios AdWhirl的第一个iAd请求总是在iPad上返回一个肖像广告,ios,ipad,iad,adwhirl,Ios,Ipad,Iad,Adwhirl,我正在使用AdWhirl在我的应用程序中显示iAd和AdMob广告。在iPad上,当处于横向时,我创建了一个1024宽的AdWhirlView,但返回的第一个iAd总是一个纵向宽度的广告(768)。如果我将iPad旋转到纵向,然后再旋转回横向,则广告在整个横向中正确显示1024宽 为什么景观广告不能在不需要轮换的情况下开始呢 - (void) setupAdWhirl { if (self.adWhirlView == nil) { CGFloat adWhirlHeig

我正在使用AdWhirl在我的应用程序中显示iAd和AdMob广告。在iPad上,当处于横向时,我创建了一个1024宽的AdWhirlView,但返回的第一个iAd总是一个纵向宽度的广告(768)。如果我将iPad旋转到纵向,然后再旋转回横向,则广告在整个横向中正确显示1024宽

为什么景观广告不能在不需要轮换的情况下开始呢

- (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宽。

我不知道是否有一种“正确”的方法来实现这一点,但我入侵了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;
  }