【问题标题】:Sprite Kit SKScene with wrong size after integrating iAd or not working at all集成 iAd 后 Sprite Kit SKScene 尺寸错误或根本不工作
【发布时间】:2015-08-26 17:38:42
【问题描述】:

我正在尝试将 iAd 集成到 Sprite Kit 游戏中。

当我在添加游戏场景之前设置“canDisplayBannerAds = true”时,会显示横幅添加但gameScene不起作用:

override func viewDidLoad() {
    super.viewDidLoad()

    canDisplayBannerAds = true

    // Configure de main view
    if let skView = view as? SKView {

        // Create and configure scene
        scene = GameScene(size: skView.bounds.size)
        scene!.scaleMode = .AspectFill

        // Show the scene
        skView.presentScene(scene!)
    }
}

当我在添加 SKScene 后设置“canDisplayBannerAds = true”时,会显示 iAd,并且游戏场景现在可以正常工作,但尺寸错误,比添加横幅后的屏幕还大。

override func viewDidLoad() {
    super.viewDidLoad()

    // Configure de main view
    if let skView = view as? SKView {
        skView.showsFPS = true

        // Create and configure scene
        scene = MarketGameScene(size: skView.bounds.size)
        scene!.scaleMode = .AspectFill
        scene!.marketGameViewController = self

        // Show the scene
        skView.presentScene(scene!)
    }

    canDisplayBannerAds = NSUserDefaults.standardUserDefaults().boolForKey(UserDefaultsKey.ShowAds)
}

我错过了什么? 谢谢

【问题讨论】:

    标签: ios swift sprite-kit iad skscene


    【解决方案1】:

    这里有一些对我有用的代码。这甚至不需要self.candisplaybannerads = true,因为我对此有一些问题。广告会根据屏幕尺寸自动改变尺寸,位于屏幕底部。要隐藏和显示广告,请使用

    AdBanner.hidden = true/false
    

    ......

    import iAd
    
    class viewController: UIViewController, ADBannerViewDelegate {
    
    var AdBanner = ADBannerView()
    
    override func viewDidLoad() {
        super.viewDidLoad()
    
            /* Ad Banner Settings */
    
            AdBanner = ADBannerView()
            AdBanner.frame = CGRectZero
            AdBanner.delegate = self
            self.AdBanner.frame = CGRectMake(0, self.view.frame.size.height-self.AdBanner.frame.size.height, self.AdBanner.frame.size.width, self.AdBanner.frame.size.height)
            AdBanner.backgroundColor = UIColor.clearColor()
            self.view .addSubview(AdBanner)
    
    }
    
    /* All iAd Functions */
    
    func bannerViewActionShouldBegin(banner: ADBannerView!, willLeaveApplication willLeave: Bool) -> Bool {
    /* whatever you need */
        return true
    }
    
    func bannerViewActionDidFinish(banner: ADBannerView!) {
    /* whatever you need */
    }
    
    func bannerViewDidLoadAd(banner: ADBannerView!) {
        AdBanner.hidden = false
    }
    
    
    func bannerView(banner: ADBannerView!, didFailToReceiveAdWithError error: NSError!) {
        NSLog("Error Loading Ad")
    /* whatever you need */
        AdBanner.hidden = true
    }
    func bannerViewWillLoadAd(banner: ADBannerView!) {
    /* whatever you need */
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多