iAd設置してみました(続編)
前回の記事から少し判った事の追加です。
マニュアルは良く読まないといけないですね。
広告を読み込んだ時に未対応でした。(汗)
それと、読み込めなかった時の対応が不十分みたいでした。
BOOL _bannerIsVisible; というインスタンス変数を追加して、状態に応じて処理するようにしました。
YESの時は広告表示中、NOは広告非表示と広告の状態を保存しています。
広告を読み込んだ時の対応
viewController.m
- (void)viewDidLoad {
[super viewDidLoad];
adView = [[ADBannerView alloc] initWithFrame:CGRectZero];
adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifier320x50;
[self.view addSubview:adView];
adView.delegate = self;
// これを追加。あらかじめ画面上に隠しておきます。
_bannerIsVisible = NO; // インスタンス変数です。広告の状態を保存しています。
adView.frame = CGRectOffset( adView.frame, 0.0, -50.0 );
}
// このデリゲートメソッドを追加しました。
- (void)bannerViewDidLoadAd:(ADBannerView *)banner
{
if (!_bannerIsVisible) {
// Banner Viewが表示されないように50ピクセルにオフセットされていると仮定
[UIView beginAnimations:@"animateAdBannerOn" context:NULL];
banner.frame = CGRectOffset(banner.frame, 0, 50);
[UIView commitAnimations];
_bannerIsVisible = YES;
}
}
広告が読み込めなかった時の対応(状態に対応版)
- (void)bannerViewDidLoadAd:(ADBannerView *)banner
{
if (!_bannerIsVisible) {
// Banner Viewが表示されないように50ピクセルにオフセットされていると仮定
[UIView beginAnimations:@"animateAdBannerOn" context:NULL];
banner.frame = CGRectOffset(banner.frame, 0, 50);
[UIView commitAnimations];
_bannerIsVisible = YES;
}
}
以上でした〜。
作っているゲーム、もう少ししたら提出できそうです。
提出したら、内容などお知らせしていこうと思います。