在 SpriteKit 中使用 Swift 的 IOS admob

标签 ios swift sprite-kit admob

我遵循了我找到的文档(swift 中的googleAd)。当我在我的 SpriteKit 场景中表演时。命令行“bannerView?.rootViewController = Self”出现错误。

gamescene 无法转换为 UIViewController

 bannerView = GADBannerView(adSize: kGADAdSizeBanner)
            bannerView?.adUnitID = "xxxxxxxxxxxxxxxxxxxxx"
            bannerView?.delegate = self
            bannerView?.rootViewController = self // -> Error "gamescene not convertible to UIViewController"
            self.view?.addSubview(bannerView!)
            bannerView?.loadRequest(GADRequest())

            timer?.invalidate()
            timer = NSTimer.scheduledTimerWithTimeInterval(40, target: self, selector: "GoogleAdRequestTimer", userInfo: nil, repeats: true)

最佳答案

您需要将这段代码放在 GameViewController.swift 中的 viewDidLoad 中,而不是放在 GameScene.swift 中。

记得将 GADBannerViewDelegate 添加到类中。

示例:

class GameViewController: UIViewController, GADBannerViewDelegate {

var scene: GameScene!
var adBannerView: GADBannerView!

override func viewDidLoad() {
    super.viewDidLoad()

        // Configure the view.
        let skView = view as SKView
        skView.showsFPS = false
        skView.showsNodeCount = false
        skView.showsPhysics = false

        /* Sprite Kit applies additional optimizations to improve rendering performance */
        skView.ignoresSiblingOrder = true

        /* Set the scale mode to scale to fit the window */
        scene = GameScene(size: skView.bounds.size)
        scene.scaleMode = .AspectFill

        skView.presentScene(scene)

    adBannerView = GADBannerView(frame: CGRectMake(0, 0, self.view.frame.size.width, 50))
    adBannerView.delegate = self
    adBannerView.rootViewController = self
    adBannerView.adUnitID = "YOUR AD ID"

    var reqAd = GADRequest()
    reqAd.testDevices = [GAD_SIMULATOR_ID] // If you want test ad's
    adBannerView.loadRequest(reqAd)
    self.view.addSubview(adBannerView)


}

我引用了两个链接,它们提供了有关如何将 Google Ad (AdMob) 添加到应用中的示例。

Google Ad's with Swift Example 1 (more detailed)

Google Ad's with Swift Example 2

希望对你有帮助

关于在 SpriteKit 中使用 Swift 的 IOS admob,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26698111/

相关文章:

ios - 在objective-c中控制一个 channel 的音量

ios - 错误 : Value of type '[String]' has no member 'objectAtIndex' while implementing UISearchController

ios - 以编程方式触发时 UIRefreshControl 不刷新

swift - Google Places API swift

ios - 当射弹击中两个 "monsters"时,didBeginContact 方法崩溃。我知道为什么,但我不知道如何避免

ios - SKScene 和 SKView 的暂停属性之间的区别

ios - 存在标签栏 Controller 时使用登录页面启动应用程序

ios - 播放音频文件时找不到 'PathForResource' 的过载

swift - 这个成功方法是什么? (快速关闭)

ios - 如何完全卸载 SpriteKit Scene