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 件のコメント:
コメントを投稿