swift - 每次加载 iAd 横幅时,iAd 横幅会抖动/改变场景大小。

标签 swift xcode6 sprite-kit iad

如果 iAds 横幅不改变场景,我无法将 iAds 实现到游戏中,例如每次加载广告时都会抖动屏幕。请提供解决方案以阻止这种情况发生。

class GameViewController: UIViewController,ADBannerViewDelegate{
@IBOutlet var adBannerView: ADBannerView? //connect in IB connection inspector with your ADBannerView

override func viewDidLoad() {
    super.viewDidLoad()

    if let scene = GameScene.unarchiveFromFile("GameScene") as? GameScene {
        // Configure the view.
        let skView = self.view as! SKView
        skView.showsFPS = true
        skView.showsNodeCount = true

        var defaultsV = NSUserDefaults.standardUserDefaults();
        defaultsV.setInteger(0, forKey: "gameOverCount")
        defaultsV.setBool(false, forKey: "firstSessionEnded")
        defaultsV.synchronize()

        //self.adBannerView!.frame = CGRectMake(0, self.view.frame.size.height-self.adBannerView!.frame.size.height, self.adBannerView!.frame.size.width, self.adBannerView!.frame.size.height)




        self.adBannerView!.delegate = self
        self.adBannerView!.hidden = true //hide until ad loaded

        self.canDisplayBannerAds = true
        /* Sprite Kit applies additional optimizations to improve rendering performance */
        skView.ignoresSiblingOrder = true
        self.adBannerView?.sizeToFit()

        /* Set the scale mode to scale to fit the window */
        scene.scaleMode = .AspectFill
        skView.presentScene(scene)



    }
}

func bannerViewWillLoadAd(banner: ADBannerView!) {
    NSLog("bannerViewWillLoadAd")
    //self.canDisplayBannerAds = true
    self.adBannerView!.hidden = true //hide until ad loaded

    self.adBannerView!.frame = CGRectMake(0, self.view.frame.size.height-self.adBannerView!.frame.size.height, self.adBannerView!.frame.size.width, self.adBannerView!.frame.size.height)



}

func bannerViewDidLoadAd(banner: ADBannerView!) {
    NSLog("bannerViewDidLoadAd")
    self.adBannerView!.frame = CGRectMake(0, self.view.frame.size.height-self.adBannerView!.frame.size.height, self.adBannerView!.frame.size.width, self.adBannerView!.frame.size.height)

    self.adBannerView!.hidden = false //now show banner as ad is loaded
    //self.canDisplayBannerAds = true


}

func bannerViewActionDidFinish(banner: ADBannerView!) {
    NSLog("bannerViewDidLoadAd")


    //optional resume paused game code

}

func bannerViewActionShouldBegin(banner: ADBannerView!, willLeaveApplication willLeave: Bool) -> Bool {
    NSLog("bannerViewActionShouldBegin")

    //optional pause game code

    return true
}

func bannerView(banner: ADBannerView!, didFailToReceiveAdWithError error: NSError!) {
    NSLog("bannerView")

   self.adBannerView!.hidden = true
}

最佳答案

您建议您始终将 canDisplayBannerAds 设置为 false,因为这允许 viewController 在显示广告时调整 View 大小。如果您需要创建另一个 bool 值来确定广告的状态。

//ViewControlller.m
self.canDisplayBannerAds = false

关于swift - 每次加载 iAd 横幅时,iAd 横幅会抖动/改变场景大小。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29886132/

相关文章:

swift - 如何在 iOS 中列出可发现的蓝牙设备和已配对的设备,快速使用哪种方法?

ios - swift - 保存自定义静态 uitableviewcell 的重新排序

ios - 不重复的随机数生成器函数

facebook - 在 Swift 中使用 Open Graph Facebook SDK 4.4 发送图像和文本

ios - 项目在新的 XCode 6 中运行后出现 144 次致命故障

swift - 如何在 spritekite Swift 中正确设置碰撞?

swift - 如何访问另一个类中扩展的var?

swift - 在 swift 中子类化子类(skspritenode)

ios - Firebase 3.6.0 (Auth) - 使用 Swift 3.0 检测特定错误

swift - 不推荐使用未标记的尾随闭包的向后匹配......有什么方法可以使其静音,而不是停止使用尾随闭包?