将ADBannerView添加到SKScene

我正在尝试在场景中添加iAd横幅到我的游戏,但我不知道如何将UIView添加到SKScene。

应用视图控制器是:

- (void)viewWillLayoutSubviews { [super viewWillLayoutSubviews]; // Configure the view. SKView * skView = (SKView *)self.view; skView.showsFPS = YES; skView.showsNodeCount = YES; // Create and configure the scene. SKScene * scene = [GameOverScene sceneWithSize:skView.bounds.size andScore:0]; scene.scaleMode = SKSceneScaleModeAspectFill; // Present the scene. [skView presentScene:scene]; } 

和GameOverScene:

 #import "GameOverScene.h" #import  @implementation GameOverScene +(id)sceneWithSize:(CGSize)size andScore:(NSInteger)score{ return [[self alloc] initWithSize:size andScore:score]; } -(id)initWithSize:(CGSize)size andScore:(NSInteger)score{ if (self = [super initWithSize:size]) { /* Setup your scene here */ self.backgroundColor = [SKColor colorWithRed:0.15 green:0.15 blue:0.3 alpha:1.0]; //some stuff here... ADBannerView* banner = [[ADBannerView alloc] initWithFrame:CGRectMake(0, self.view.frame.size.height - 50, 320, 50)]; [self.scene.view addSubview:banner]; //[self.view addSubview:banner]; } return self; } @end 

有什么想法或建议吗? 谢谢!

使用NSNotificationCenter。 为了简单起见:

1)在SKView内的故事板中添加AdBannerView。 (或者您可以在ViewController.m中使用代码添加)

2)在ViewController.h中定义ADBannerViewDelegate并添加(请记住链接故事板中的sockets)

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

3)在ViewController.m中

 - (void)viewDidLoad { self.banner.hidden = YES; //Add view controller as observer [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleNotification:) name:@"hideAd" object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleNotification:) name:@"showAd" object:nil]; } - (void)showBanner { self.banner.hidden = NO; } - (void)hidesBanner { self.banner.hidden = YES; } //Handle Notification - (void)handleNotification:(NSNotification *)notification { if ([notification.name isEqualToString:@"hideAd"]) { [self hidesBanner]; }else if ([notification.name isEqualToString:@"showAd"]) { [self showBanner]; } } 

4)在Scene.m中,以显示广告

例如,玩家死了,你想要展示横幅

 // Show banner when iad loads [[NSNotificationCenter defaultCenter] postNotificationName:@"showAd" object:nil]; //Sends message to viewcontroller to show ad. 

5)在Scene.m中,为了隐藏广告

例如,玩家重新开始游戏

 // Show banner when iad loads [[NSNotificationCenter defaultCenter] postNotificationName:@"hideAd" object:nil]; //Sends message to viewcontroller to show ad. 

*建议在广告未加载时隐藏广告。

http://www.yokeharn.com/workflow-how-to-create-flappy-bird-game-in-3-days-day-3/向下滚动到第4小时:iAd。 这是一个很好的教程,可以帮助你完成90%的最后10%你自己尝试