【问题标题】:How to add iAd in SpriteKit and deactivate it when a scene changes?如何在 SpriteKit 中添加 iAd 并在场景变化时将其停用?
【发布时间】:2016-04-25 07:52:06
【问题描述】:

在我的游戏文件 GameScene 中,我编写了要在其中显示 iAd 的代码。

func addiAd(){
    bannerView = ADBannerView(adType: .Banner)
    bannerView.delegate = self
    bannerView.hidden = true
    bannerView.frame = CGRectOffset(bannerView.frame, 0.0, 0.0)
    bannerView.center = CGPointMake(bannerView.center.x,  
    (view?.bounds.size.height)! - bannerView.frame.size.height/2)
    view!.addSubview(bannerView)
    print("iAd is working")
}

func bannerViewDidLoadAd(banner: ADBannerView!) {
    bannerView.hidden = false
}

func bannerViewActionDidFinish(banner: ADBannerView!) {
    bannerView.removeFromSuperview()
}

func bannerView(banner: ADBannerView!, didFailToReceiveAdWithError error: NSError!) {
    bannerView.hidden = true
}

嗯,它最初看起来可以正常工作,但并不完美,因为当一个场景转换到另一个名为 GameOverScene 的游戏场景文件时,我的 bannerView 不会消失并永远停留在它出现的位置,直到运行结束。我想停用这个。我的代码上面写错了吗?在我的源代码中,我总共需要GameSceneGameOverScene 中的两个adBanner 视图。我对错误的假设是我没有在 GameViewController 中编写这些代码,但我不确定。你能告诉我如何实现它并解释我必须在哪里写吗?

【问题讨论】:

  • 请注意,Apple 将于 6 月 30 日关闭 iAd 网络

标签: ios swift sprite-kit iad


【解决方案1】:

在 iAd 委托方法中,您可以更改横幅的 alpha 属性。例如:

func bannerViewDidLoadAd(banner: ADBannerView!) {
    bannerView.alpha = 1.0
}

func bannerView(banner: ADBannerView!, didFailToReceiveAdWithError error: NSError!) {
    bannerView.alpha = 0.0
}

然后,当您更改场景或想要确保 iAd 横幅不出现时,您可以设置其hidden 属性。例如:

func hideBanner() {
    // Call whenever you don't want the ADBannerView to be on screen
    bannerView.hidden = true
}

func showBanner() {
    // Call when you want the ADBannerView to be on screen
    bannerView.hidden = false
} 

这还需要您更新addiAd 函数:将bannerView.hidden = true 更改为bannerView.alpha = 0.0

最后,您不应该在此处从 Superview 中删除 iAd 横幅:

func bannerViewActionDidFinish(banner: ADBannerView!) {
    bannerView.removeFromSuperview()
}

【讨论】:

  • 感谢您的回答!我可以再问一个问题吗?最好有一个 x 按钮在显示bannerView 时删除它。有什么简单的代码可以实现吗?
  • @ryohei 为您的关闭按钮创建一个自定义 UIButton 并将其放置在 ADBannerView 的角落。然后让 UIButton 在被点击时调用 hideBanner 函数。
  • 啊!凉爽的!以为有一些内置代码!只需添加 UIButton。我懂了。谢谢你的回答:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-12
  • 2016-06-02
  • 1970-01-01
相关资源
最近更新 更多