如何在游戏场景加载后显示iAd?

时间:2015-08-27 15:11:35

标签: swift

我很困惑为什么这不起作用。我收到了一个错误:Thread1:SIGABRT。是的,我确实看过关于Thread1: SIGABRT的帖子,但它没有解决我的问题。

如果有人可以请求帮助,那就太好了。它可以在没有iAd横幅的情况下加载。但是当iAd代码写入程序时,它会冻结。

import UIKit
import SpriteKit
import iAd

class GameViewController: UIViewController, ADBannerViewDelegate {

@IBOutlet var Banner: ADBannerView!

var scene: GameScene!


override func viewDidLoad() {
    super.viewDidLoad()

    Banner.hidden = true
    Banner.delegate = self
    self.canDisplayBannerAds = true

    // Configure the view
    let skView = view as! SKView
    skView.multipleTouchEnabled = false

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

    // Present the scenee
    skView.presentScene(scene)


}

override func shouldAutorotate() -> Bool {
    return true
}

override func supportedInterfaceOrientations() -> Int {
    if UIDevice.currentDevice().userInterfaceIdiom == .Phone {
        return Int(UIInterfaceOrientationMask.AllButUpsideDown.rawValue)
    } else {
        return Int(UIInterfaceOrientationMask.All.rawValue)
    }
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Release any cached data, images, etc that aren't in use.
}

override func prefersStatusBarHidden() -> Bool {
    return true

}

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

func bannerViewWillLoadAd(banner: ADBannerView!) {

}

func bannerViewActionShouldBegin(banner: ADBannerView!, willLeaveApplication willLeave:Bool) ->Bool {
    return true
}

func bannerViewDidLoadAd(banner: ADBannerView!){
    Banner.hidden = false
}
}

1 个答案:

答案 0 :(得分:1)

以下是一些适用于我的工作代码。这甚至不需要self.candisplaybannerads = true,因为我遇到了一些问题。广告会根据屏幕尺寸自动更改尺寸,并位于屏幕底部。

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 */
}