日本でも始まったようなのでiAd設定してみた

以下のように設定してみたけど、まだ申請中なので間違ってるのかもしれない。


~ ViewController.h ~



#import <iAd/iAd.h>


@interface ViewController : UIViewController<ADBannerViewDelegate> {


    UIView *contentView;


    ADBannerView *banner;


}


@property(nonatomic, retain) IBOutlet UIView *contentView;


@property(nonatomic, retain) IBOutlet ADBannerView *banner;


@end











~ ViewController.m ~



@interface soukakuViewController()


-(void)layoutForCurrentOrientation:(BOOL)animated;


-(void)createADBannerView;


@end




@synthesize contentView, banner;




- (void)dealloc


{


    [contentView release]; contentView = nil;


    banner.delegate = nil;


    [banner release]; banner = nil;


}




#pragma mark ADBannerViewDelegate methods




- (void)viewDidLoad


{


    if(banner == nil)


    {


        [self createADBannerView];


    }


    [self layoutForCurrentOrientation:NO];


}




-(void)viewWillAppear:(BOOL)animated


{


    [super viewWillAppear:animated];


    [self layoutForCurrentOrientation:NO];


}




-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation


{


    return YES;


}




-(void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration


{


    [self layoutForCurrentOrientation:YES];


}




-(void)createADBannerView


{


NSString *contentSize;


if (&ADBannerContentSizeIdentifierPortrait != nil)


{


contentSize = UIInterfaceOrientationIsPortrait(self.interfaceOrientation) ? ADBannerContentSizeIdentifierPortrait : ADBannerContentSizeIdentifierLandscape;


}


else


{


contentSize = UIInterfaceOrientationIsPortrait(self.interfaceOrientation) ? ADBannerContentSizeIdentifier320x50 : ADBannerContentSizeIdentifier480x32;


    }



    CGRect frame;


    frame.size = [ADBannerView sizeFromBannerContentSizeIdentifier:contentSize];


    frame.origin = CGPointMake(0.0f, CGRectGetMaxY(self.view.bounds));


    


    ADBannerView *bannerView = [[ADBannerView alloc] initWithFrame:frame];


    bannerView.delegate = self;


    bannerView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleTopMargin;


    


bannerView.requiredContentSizeIdentifiers = (&ADBannerContentSizeIdentifierPortrait != nil) ?


    [NSSet setWithObjects:ADBannerContentSizeIdentifierPortrait, ADBannerContentSizeIdentifierLandscape, nil] : 


    [NSSet setWithObjects:ADBannerContentSizeIdentifier320x50, ADBannerContentSizeIdentifier480x32, nil];


    


    [self.view addSubview:bannerView];


    self.banner = bannerView;


    [bannerView release];


}




-(void)layoutForCurrentOrientation:(BOOL)animated


{


    CGFloat animationDuration = animated ? 0.2f : 0.0f;


    CGRect contentFrame = self.view.bounds;


    CGPoint bannerOrigin = CGPointMake(CGRectGetMinX(contentFrame), CGRectGetMaxY(contentFrame));


    CGFloat bannerHeight = 0.0f;


    


    if(UIInterfaceOrientationIsLandscape(self.interfaceOrientation))


    banner.currentContentSizeIdentifier = (&ADBannerContentSizeIdentifierLandscape != nil) ? ADBannerContentSizeIdentifierLandscape : ADBannerContentSizeIdentifier480x32;


    else


        banner.currentContentSizeIdentifier = (&ADBannerContentSizeIdentifierPortrait != nil) ? ADBannerContentSizeIdentifierPortrait : ADBannerContentSizeIdentifier320x50


    bannerHeight = banner.bounds.size.height



    if(banner.bannerLoaded)


    {


        contentFrame.size.height -= bannerHeight;


        bannerOrigin.y -= bannerHeight;


    }


    else


    {


        bannerOrigin.y += bannerHeight;


    }


    


    [UIView animateWithDuration:animationDuration


                     animations:^{


                         contentView.frame = contentFrame;


                         [contentView layoutIfNeeded];


                         banner.frame = CGRectMake(bannerOrigin.x, bannerOrigin.y, banner.frame.size.width, banner.frame.size.height);


                     }];


}




-(void)bannerViewDidLoadAd:(ADBannerView *)banner


{


    [self layoutForCurrentOrientation:YES];


}




-(void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error


{


    [self layoutForCurrentOrientation:YES];


}




-(BOOL)bannerViewActionShouldBegin:(ADBannerView *)banner willLeaveApplication:(BOOL)willLeave


{


    return YES;


}




-(void)bannerViewActionDidFinish:(ADBannerView *)banner


{


}




- (void)viewDidUnload


{


    self.contentView = nil;


    banner.delegate = nil;


    self.banner = nil;


}


@end

関連記事




【マクロミル】アンケート会員募集中!謝礼ポイント有

コメント

コメントの投稿

管理者にだけ表示を許可する

トラックバック


この記事にトラックバックする(FC2ブログユーザー) URL

検索フォーム
最新記事
カテゴリ
HG (3)
FG (2)
MG (9)
RG (8)
リンク
このブログをリンクに追加する
月別アーカイブ
アクセスランキング
[ジャンルランキング]
趣味・実用
1839位
アクセスランキングを見る>>

[サブジャンルランキング]
模型・プラモデル
241位
アクセスランキングを見る>>
カウンター