0

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;
    }
}

これら 2 つのログ ステートメントは次のように出力されます。

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

したがって、adWhirlView で最初に設定するフレームは、幅 1024、高さ 90 です。ただし、最初の iAd をロードすると、幅 768 にサイズ変更されます。

4

1 に答える 1

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;
  }
于 2013-02-19T22:39:29.823 に答える