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