广告移动广告仅在某些场景中出现?

时间:2015-02-13 21:47:54

标签: swift sprite-kit admob

我有一个与广告移动广告的游戏。我正在使用SpriteKit。广告完美无缺,但我只希望它们出现在某个场景中。例如,让它们在游戏场景中消失。我的广告横幅设置如下。在我的main.storyboard中,我有一个320x50的UIView,它连接到我的GameViewController中的GADBannerView。一切都很好,但在每个场景中都有一个横幅广告。如何使横幅仅出现在主菜单场景和场景中的游戏中。这些是SKScenes。请帮忙!谢谢!

P.S。我正在使用Swift

1 个答案:

答案 0 :(得分:2)

以下是实现这一目标的一种方法:

在ViewController.swift中,定义

NSNotificationCenter.defaultCenter().addObserver(self, selector: "showAd:", name: "gameStateOff", object: nil)
NSNotificationCenter.defaultCenter().addObserver(self, selector: "hideAd:", name: "gameStateOn", object: nil)

使用它们在场景和视图控制器之间进行通信。

接下来,实现showAd和hideAd函数,当场景进入或离开“游戏状态”时将调用这些函数:

func showAd(notif: NSNotification) {
    // this func places the ad to the bottom of the screen
    var frame = ad.frame
    frame.origin.x = view.bounds.width / 2 - frame.size.width / 2
    frame.origin.y = view.bounds.height - frame.size.height
    ad.frame = frame
  }

  func hideAd(notif: NSNotification) {
    // this func places the ad outside the screen
    var frame = ad.frame
    frame.origin.x = view.bounds.width / 2 - frame.size.width / 2
    frame.origin.y = -frame.size.height
    ad.frame = frame
  }

其中ad是您的GADBannerView(adSize:kGADAdSizeBanner)。

接下来将此添加到您开始游戏的位置

NSNotificationCenter.defaultCenter().postNotificationName("gameStateOn", object: nil)

此调用使视图控制器执行hideAd函数。

如果您想再次展示广告,请致电

NSNotificationCenter.defaultCenter().postNotificationName("gameStateOff", object: nil)