次の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;
}
広告が利用できない場合は、ヘッダービューを縮小したいと思います。広告があれば拡大したいです。
ビューが読み込まれると、これは正常に機能します。ただし、これらのデリゲートメソッドは、ビューが読み込まれた後に呼び出されなくなるようです。次のシナリオに遭遇する可能性があります。
- ビューAはロードされますが、iAdが使用できないため、headerViewが縮小されます
- ユーザーはビューBに移動します
- ユーザーがビューAに戻ります
- 問題:ビューAが既に読み込まれているため、headerViewは縮小されていますが、ADBannerViewDelegateメソッドが呼び出されていないため、広告が利用可能かどうかを確認できません。
ビューが最初にロードされた後でも、これらのデリゲートメソッドが呼び出されるようにするにはどうすればよいですか?