繁体   English   中英

iAd ADBannerView更改SKScene的大小

[英]iAd ADBannerView changes the size of SKScene

我觉得我到处都看过了,无法弄清楚。 我正在尝试在菜单屏幕的底部显示横幅广告,如下所示:

在此处输入图片说明

但是,当我显示“游戏结束”屏幕(上面也有广告)后,主菜单如下所示:

在此处输入图片说明

任何帮助将不胜感激。 我使用NSNotificationCenter调用广告, GameOver 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的“开始”场景中:

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

最后,我为自己的情况找到了解决方案。 我只是加载了一个不同的SKScene ,稍等片刻,然后打电话给我的另一个。 这样,菜单始终看起来相同。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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