iAd ADBannerView改变SKScene的大小

iAd ADBannerView changes the size of SKScene

感觉找遍了都想不通。我正在尝试在我的菜单屏幕底部显示横幅广告,如下所示:

但在我显示 "game over" 屏幕(上面还有广告)后,主菜单如下所示:

如有任何帮助,我们将不胜感激。我通过使用 NSNotificationCenterGameOver SKScene 调用 presentScene 来调用广告以返回主菜单。我认为它与该调用中的帧大小有关,但我不知道如何解决它。

在我的 GameViewController 中:

override func viewDidLoad() {
    //code
    loadAds()
    NSNotificationCenter.defaultCenter().addObserver(self, selector: "showiAdBanner", name: "showiAdBanner", object: nil)
    NSNotificationCenter.defaultCenter().addObserver(self, selector: "hideiAdBanner", name: "hideiAdBanner", object: nil)
}

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

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

func loadAds(){
    adBannerView = ADBannerView(frame: CGRect.zeroRect)
    adBannerView.center = CGPoint(x: adBannerView.center.x, y: view.bounds.size.height - adBannerView.frame.size.height / 2)
    adBannerView.delegate = self
    adBannerView.hidden = true
    adBannerView.layer.zPosition = 10
    view.addSubview(adBannerView)
}

func showiAdBanner() {
    if adBannerView.bannerLoaded {
        adBannerView.hidden = false
    }
}

func hideiAdBanner() {
    adBannerView.hidden = true
}

SpriteKit 内部 "Start" 场景:

override func didMoveToView(view: SKView) {
    //code
    NSNotificationCenter.defaultCenter().postNotificationName("showiAdBanner", object: nil)
}

我最终找到了适合我的情况的解决方案。我只是有一个不同的 SKScene 加载,等一下,然后调用我的另一个。这样,菜单看起来总是一样的。