【问题标题】:NSNotification is called every time I tap the screen每次点击屏幕时都会调用 NSNotification
【发布时间】:2015-08-21 22:11:33
【问题描述】:

我的游戏我正在发送一个 NSNotification 以在游戏期间隐藏横幅广告并在主菜单和游戏结束场景上显示横幅广告。这工作正常,除了由于某种原因,每次我点击屏幕时都会调用隐藏广告的通知并且广告消失。以下是在 GameViewController 中设置通知的代码:

NSNotificationCenter.defaultCenter().addObserver(self, selector: "showBanner:", name: "showAdBanner", object: nil)

NSNotificationCenter.defaultCenter().addObserver(self, selector: "hideBanner:", name: "hideAdBanner", object: nil)

然后是两个函数:

func showBanner(notification: NSNotification){

        self.googleBannerView.hidden = false
        var request: GADRequest = GADRequest()
        self.googleBannerView.loadRequest(request)
        println("show banner")

}

func hideBanner(notification: NSNotification){

        self.googleBannerView.hidden = true
        println("hide banner")

}

在主菜单场景和游戏结束场景中:

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

然后在游戏场景中:

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

很奇怪,为什么每次我在主菜单场景和游戏结束时点击屏幕,广告横幅就会消失。有任何想法吗?我真的需要帮助,这是唯一阻碍我发布游戏的原因。先感谢您。

-维尼

【问题讨论】:

  • hideBanner 函数中放置一个断点。看看它叫什么。
  • 横幅消失时是否在控制台打印hide banner
  • @rmaddy 当在 hideBanner 函数的顶部放置一个断点时,它会崩溃。它说:(lldb)。
  • @der_michael 不,它没有。
  • 此时我假设您的横幅没有隐藏,但您的场景被绘制在上面。您需要将场景视口缩小横幅的大小。

标签: ios swift nsnotificationcenter nsnotifications


【解决方案1】:

当您显示横幅时,您需要将游戏场景缩小到横幅的框架。

在 iOS 中,SCNView 是 UIView 的子类

所以只需调整 SCNView 的大小,以便两者同时适合屏幕...

【讨论】:

    【解决方案2】:

    好的,我修好了。我所做的只是更改发布通知的位置。当我按下播放并重试按钮时,我将其更改为隐藏。非常感谢大家的帮助! -文尼

    【讨论】:

      猜你喜欢
      • 2023-03-24
      • 2020-03-05
      • 1970-01-01
      • 1970-01-01
      • 2011-04-23
      • 2019-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多