iPhone App - iAD 적용
1. Framework 에 iAd.framework를 추가
#import <iAd/iAd.h>
@interface FirstViewController : UIViewController <ADBannerViewDelegate>{
...
ADBannerView *bannerView;
BOOL bannerIsVisible;
}
@property (nonatomic, retain) ADBannerView *bannerView;
- (void) createBannerView;
.m
...
- (void)viewDidLoad {
[super viewDidLoad];
bannerIsVisible = NO;
[self createBannerView];
}
- (void)viewDidUnload {
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
[super viewDidUnload];
if(self.bannerView){
bannerView.delegate = nil;
self.bannerView = nil;
}
}
- (void)dealloc {
if(bannerView){
bannerView.delegate = nil;
[bannerView release];
}
[super dealloc];
}
- (void) createBannerView{
if(NSClassFromString(@"ADBannerView")){
ADBannerView *adView = [[ADBannerView alloc] initWithFrame:CGRectZero];
adView.requiredContentSizeIdentifiers =
[NSSet setWithObjects:ADBannerContentSizeIdentifier320x50,
ADBannerContentSizeIdentifier480x32,
nil];
adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifier320x50;
adView.delegate = self;
adView.frame = CGRectMake(0, 411, 320, 50); //처음위치. 여기서 멍때리고 있다가.. delegate에서 위치를 잡아준다.
self.bannerView = adView;
[self.view addSubview:adView];
bannerIsVisible = NO;
}
}
#pragma mark -
#pragma mark iAD delegate
- (void)bannerViewDidLoadAd:(ADBannerView*)banner{
if(!bannerIsVisible)
{
[UIView beginAnimations:@"animateBannerAppear" context:NULL];
banner.frame = CGRectOffset(banner.frame, 0, -50);
[UIView commitAnimations];
bannerIsVisible = YES;
}
}
- (void)bannerView:(ADBannerView*)banner didFailToReceiveAdWithError:(NSError*)error{
if(bannerIsVisible){
[UIView beginAnimations:@"animateAdBannerOff" context:NULL];
banner.frame = CGRectOffset(banner.frame, 0, 50);
[UIView commitAnimations];
bannerIsVisible = NO;
}
}
...
//.m 끝
<http://useyourloaf.com/blog/2010/7/13/adding-iads-to-an-application-in-an-afternoon.html> |