AdWhirl的急救请求始终在iPad上返回纵向广告

时间:2013-02-19 22:15:03

标签: ios ipad iad adwhirl

我使用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宽。

1 个答案:

答案 0 :(得分: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;
  }