0

次のADBannerViewDelegate実装があります。

#pragma mark ADBannerViewDelegate Methods
- (void)bannerViewDidLoadAd:(ADBannerView *)banner {
    self.headerView.frame = CGRectMake(0, 0, 320, 94);
    [self.tableView setTableHeaderView:headerView];
    adBannerView.hidden = FALSE;
}

- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error
{
    headerView.frame = CGRectMake(0, 0, 320, 50);
    [self.tableView setTableHeaderView:headerView]; //hide the ad if it doesnt fill
    adBannerView.hidden = TRUE;
}

広告が利用できない場合は、ヘッダービューを縮小したいと思います。広告があれば拡大したいです。

ビューが読み込まれると、これは正常に機能します。ただし、これらのデリゲートメソッドは、ビューが読み込まれた後に呼び出されなくなるようです。次のシナリオに遭遇する可能性があります。

  1. ビューAはロードされますが、iAdが使用できないため、headerViewが縮小されます
  2. ユーザーはビューBに移動します
  3. ユーザーがビューAに戻ります
  4. 問題:ビューAが既に読み込まれているため、headerViewは縮小されていますが、ADBannerViewDelegateメソッドが呼び出されていないため、広告が利用可能かどうかを確認できません。

ビューが最初にロードされた後でも、これらのデリゲートメソッドが呼び出されるようにするにはどうすればよいですか?

4

1 に答える 1

0

デリゲートメソッドは呼び出されます。Appleは時々広告を出さないので、あなたはそれを処理する機会を得ます。

于 2010-09-21T18:18:26.143 に答える