2014-05-01 56 views
0

如何在SpriteKit應用程序中將iAd Banner放置在視圖頂部?如何將SpriteKit AdBanner放置在視圖頂部?

該橫幅工作完美,但在錯誤的位置。

下面是iAd的橫幅的代碼,但它始終低於:

ViewController.m

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    // Configure the view. 
    SKView * skView = (SKView *)self.originalContentView; 
    skView.showsFPS = YES; 
    skView.showsNodeCount = YES; 

    // Create and configure the scene. 
    SKScene * scene = [MyScene sceneWithSize:skView.bounds.size]; 
    scene.scaleMode = SKSceneScaleModeAspectFill; 

    self.canDisplayBannerAds = YES; 

    // Present the scene. 
    [skView presentScene:scene]; 

} 
+2

使用viewWillLayoutSubviews顯示第一個場景,搜索SO或谷歌以獲得正確的解決方案。否則,對於橫向應用程序,bounds.size將不正確。 – LearnCocos2D

+0

其肖像應用程序 – Leon

+0

有一個以前的答案在這個問題上這裏http://stackoverflow.com/questions/21669567/iad-in-sprite-kit-game – sangony

回答

2

我無法從你發佈你有多少實現的代碼告訴已經,所以爲了完整性......

進口的iAd

@import iAd; 

我的首選是創建ADBannerView類變量作爲私有實例iVar。

@implementation ViewController { 
    ADBannerView *_bannerView; 
} 

然後在viewDidLoad中

-(void)viewDidLoad { 
    // iAd support 
    _bannerView = [[ADBannerView alloc] initWithAdType:ADAdTypeBanner]; 
    _bannerView.autoresizingMask = UIViewAutoresizingFlexibleWidth; 
    _bannerView.delegate = self; 
    [self.view addSubview:_bannerView]; 
} 

對於在屏幕頂部顯示一個iAd的橫幅,這一直是需要得到它的顯示屏幕上所有。

對於委託方法,我當前的策略是在沒有任何顯示的情況下隱藏橫幅。

#pragma mark - iAd Methods 
- (void)bannerViewDidLoadAd:(ADBannerView *)banner { 
    _bannerView.hidden = NO; 
} 

- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error { 
    _bannerView.hidden = YES; 
} 

- (BOOL)bannerViewActionShouldBegin:(ADBannerView *)banner willLeaveApplication:(BOOL)willLeave { 
    return YES; 
} 

- (void)bannerViewActionDidFinish:(ADBannerView *)banner { 
} 
+0

現在是頂部的iAd橫幅,但他們遊戲是隻有一個灰色的領域:( – Leon

+0

你是否在viewDidLoad或viewWillLayoutSubviews中加載SKView? – Jeremy

相關問題