ios - iAd ADBannerView改变SKScene的大小

标签 ios swift iad

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

enter image description here

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

enter image description here

如有任何帮助,我们将不胜感激。我使用 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,稍等片刻,然后调用我的另一个。这样,菜单看起来总是一样的。

关于ios - iAd ADBannerView改变SKScene的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30472340/

相关文章:

Swift 在 googleSignin 后执行 segue

ios - 新 iPhone 6 和 6+ 的 iAds

ios - iAd 横幅位置未更新

Objective-C 访问 block 内的属性

ios - 对 UIImageView 运动进行动画处理,然后使用 CGRectIntersection

ios - 从两个 NSDates 中获取本地化的日期范围字符串

swift - 电子邮件验证器 RxSwift?

ios - SwiftUI:状态栏颜色

swift - 由于以下错误 (Sprite Kit),iAd 横幅广告无法正常工作

objective-c - 无法保存 plist。路径不可写