2011年3月29日火曜日

横画面のアプリにおける、iAdの設定法

iAdと格闘して数ヶ月、ようやく安定的なプログラムが書けるようになりました。
概要を示します。
ただし、横画面用のプログラムですので、あしからず。

まず、ファイル名に .h をつける定義ファイル中で
#import <iAd/iAd.h>を加えて
@interface *** : UIViewController <ADBannerViewDelegate>
としてデリゲートを取り込んだ後、
    ADBannerView *adView;
    BOOL bannerIsVisible;
    BOOL InfomationIsVisible;
を定義します。

次に、ファイル名に .m を付ける実行ファイルで次のプログラムを記述します。
- (void)viewDidLoad 中に
    bannerIsVisible = NO;
    adView = [[ADBannerView alloc] initWithFrame:CGRectZero];
    adView.requiredContentSizeIdentifiers = [NSSet setWithObject:ADBannerContentSizeIdentifierLandscape];
    adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifierLandscape;
    adView.delegate = self;
    adView.frame = CGRectOffset(adView.frame,0,300);
    [self.view addSubview:adView];
    InfoView.alpha = 0;
を記述し、次のコードも記述します。

- (void)bannerViewDidLoadAd:(ADBannerView *)banner {
   
    if (!bannerIsVisible) {
        [UIView beginAnimations:nil context:nil];
        [UIView setAnimationDuration:1.0];
        adView.frame = CGRectOffset(self.view.frame, 0, 268);
        [UIView commitAnimations];
        bannerIsVisible = YES;
    }
   
    NSLog(@"bannerViewDidLoadAd: is called");
   
}

-(void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error{
    if (bannerIsVisible) {
        [UIView beginAnimations:@"animateAdBannerOff" context:NULL];
        [UIView setAnimationDuration:1.0];
        adView.frame = CGRectOffset(self.view.frame, 0, 300);
        [UIView commitAnimations];
        bannerIsVisible = NO;       
        NSLog(@"didFailToReceiveAdWithError: is called");
    }
}

0 件のコメント:

コメントを投稿