简体   繁体   中英

iAd ADBannerView changes the size of SKScene

I feel like I've looked everywhere and I can't figure it out. I'm trying to show a banner ad at the bottom of my menu screen like so:

在此处输入图片说明

But after I display my "game over" screen (which also has an ad on it) The main menu looks like this:

在此处输入图片说明

Any help would be greatly appreciated. I call the ads by using the NSNotificationCenter and the GameOver SKScene calls presentScene to get back to the Main Menu. I assume it has something to do with frame size in that call, but I do not know how to fix it.

Inside my 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
}

Inside SpriteKit "Start" Scene:

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

I ended up figuring out a solution for my situation. I simply have a different SKScene load up, wait a second, then calls my other one. This way, the menu always looks the same.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM