iOS开发笔记[19/50]:集成iAd广告

在iPhone程序中集成广告,管他能不能赚钱,不放上一个iAd就心有不甘。

参考了下面这篇文章:

http://bees4honey.com/blog/tutorial/how-to-add-iad-banner-in-iphoneipad-app/

还参考这个Integrating iAds into an iOS 4 iPad App (Xcode 4)教程。

 

(1)加上iAd框架

在项目设置里的Build Phases的Link Binary With Libraries,加上iAd.Framework。

(2)

在xib界面里拖入一个ADBannerView

(3)修改ViewController的.h文件

#import <iAd/iAd.h>

加上委托

@interface myViewController : UIViewController <ADBannerViewDelegate>

加上输出口

IBOutlet ADBannerView *adView;

BOOL bannerIsVisible;

 

@property (nonatomic, retain) ADBannerView *adView;

@property (nonatomic, assign) BOOL bannerIsVisible;

 

 

(4)修改ViewController的.m文件

在viewDidLoad方法里:

adView.requiredContentSizeIdentifiers = [NSSet setWithObject:ADBannerContentSizeIdentifierPortrait];

adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifierPortrait;

adView.delegate = self;

 

在viewDidUnload方法里:

adView.delegate = nil;

 

另外:

为了防止iPhone网络异常时,iAd显示不出来时是一个空白区,可以在这2个方法再做点工作。

-(void) bannerViewDidLoadAd:(ADBannerView *)banner

{

  if(!self.bannerIsVisible)

  {

    [UIView beginAnimations:@"animateAdBannerOn"  context:NULL];   

    banner.frame = CGRectOffset(banner.frame, 0, -100);

    [UIView commitAnimations];

    self.bannerIsVisible = YES;

  }

}

 

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

{

  if(self.bannerIsVisible)

  {

    [UIView beginAnimations:@"animateAdBannerOff"  context:NULL];

    banner.frame = CGRectOffset(banner.frame, 0, 100);

    [UIView commitAnimations];

    self.bannerIsVisible = NO;

  }

}

 

 

posted @ 2012-05-29 16:43  申龙斌的程序人生  阅读(7431)  评论(1编辑  收藏  举报