【问题标题】:Swift: Remove ads different scene in SpritekitSwift:删除 Spritekit 中不同场景的广告
【发布时间】:2015-09-04 19:44:37
【问题描述】:

我正在使用 MoPub 横幅广告,我在 View Controller 的 viewDidLoad 中添加了以下代码:

     self.adView.delegate = self
    self.adView.frame = CGRectMake(0, self.view.bounds.size.height - MOPUB_BANNER_SIZE.height,
        MOPUB_BANNER_SIZE.width, MOPUB_BANNER_SIZE.height)
    self.view.addSubview(self.adView)
    self.adView.loadAd()

但是当我只希望它在主菜单场景中可见时,它会使广告在所有场景中可见。

如何在不希望出现的场景中删除广告?

【问题讨论】:

    标签: ios swift sprite-kit mopub


    【解决方案1】:

    这可能不是最好的方法,但它可能是最简单的。您可以使用NSNotification 向您的ViewController 广播一条消息,只要您想显示或隐藏您的横幅。

    例如,如果您在ViewController 上的initviewDidLoad 上添加“观察者”:

    NSNotificationCenter.defaultCenter().addObserver(
      self, 
      selector: "hideBannerAd", 
      name: "hideAd", 
      object: nil)
    

    ViewController 监听一个名为"hideAd" 的消息,然后执行一个名为hideBannerAd 的方法。

    然后实现这个方法:

    func hideBannerAd(){
      self.adView.hidden = true
    }
    

    请务必删除deinit 上的观察者,这对于SpriteKit 中的ViewController 的持久性不太可能成为问题,但这是一种很好的做法。

    deinit{
      NSNotificationCenter.defaultCenter().removeObserver(self)
    }
    

    然后,当您想要显示或隐藏视图时,例如在场景转换或游戏结束方法上,您可以通过使用以下方法触发观察者来实现此 hideBannerAd 方法:

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

    并且横幅应该隐藏。然后可以通过将hidden 属性设置为false 对类似的showBannerAd 方法重复此操作,或者您可以使用一个方法来简单地使用adView.hidden = !adView.hidden 切换隐藏属性。

    我希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多