【问题标题】:Implementing iAds on a SceneKit view在 SceneKit 视图上实施 iAd
【发布时间】:2015-02-27 03:13:27
【问题描述】:

尝试实施 iAd 横幅时遇到问题。不太确定我错过了什么。我的主要故事板是为场景套件显示设置的。我正在尝试同时在屏幕上显示广告。我在 setupAds 函数中手动创建和添加视图,如下所示。我还在其下方添加了委托例程,它们正在触发,但我没有看到广告显示。

let adBannerView = ADBannerView(frame: CGRect.zeroRect)

override func viewDidLoad() {

    super.viewDidLoad()
    /* My other setup code here */

    setupAds()
}

func setupAds() {
    adBannerView.center = CGPoint(x: adBannerView.center.x, y: view.bounds.size.height - adBannerView.frame.size.height / 2)
    adBannerView.delegate = self
    adBannerView.hidden = true
    view.addSubview(adBannerView)
}

/* My funcs to handle the splash screen and game */

// iAd delegates

func bannerViewWillLoadAd(banner: ADBannerView!) {
    println("bannerViewWillLoadAd")
}
func bannerViewDidLoadAd(banner: ADBannerView!) {
    self.adBannerView.alpha = 1.0
    println("bannerViewDidLoadAd")
}
func bannerViewActionDidFinish(banner: ADBannerView!) {
    println("bannerViewActionDidFinish")
}
func bannerViewActionShouldBegin(banner: ADBannerView!, willLeaveApplication willLeave: Bool) -> Bool {
    println("bannerViewActionShouldBegin")
    return true 
}
func bannerView(banner: ADBannerView!, didFailToReceiveAdWithError error: NSError!) {
    println("bannerViewError")
    println(error)

}

我得到的输出如下。

bannerViewWillLoadAd
bannerViewDidLoadAd
bannerViewError
Error Domain=ADErrorDomain Code=1 "Service session terminated." UserInfo=0x17466a6c0 {ADInternalErrorCode=1002, NSLocalizedDescription=Service session terminated.}

知道我在这里缺少什么吗?

非常感谢。

【问题讨论】:

  • 在bannerViewWillLoadAd:方法的superview中添加bannerView。因此,当横幅视图准备好加载时,广告可见

标签: ios xcode swift iad scenekit


【解决方案1】:

好的,Indrajeet 是正确的。需要添加到超级而不是自我。代码现在看起来像:

覆盖 func viewDidLoad() {

    super.viewDidLoad()
    super.view.addSubview(adBannerView) // This is where I needed to add the banner.

    /* Other setup stuff here */

    setupAds()
}

func setupAds() {
    adBannerView.center = CGPoint(x: adBannerView.center.x, y: view.bounds.size.height - adBannerView.frame.size.height / 2)
    adBannerView.center = CGPoint(x: view.bounds.size.width / 2, y: view.bounds.size.height - adBannerView.frame.size.height / 2)
    adBannerView.delegate = self
    adBannerView.hidden = true
}

  // iAd delegates
func bannerViewWillLoadAd(banner: ADBannerView!) {
    println("bannerViewWillLoadAd")
}
func bannerViewDidLoadAd(banner: ADBannerView!) {
    banner.hidden = false
    println("bannerViewDidLoadAd")
}
func bannerViewActionDidFinish(banner: ADBannerView!) {
    println("bannerViewActionDidFinish")
}
func bannerViewActionShouldBegin(banner: ADBannerView!, willLeaveApplication willLeave: Bool) -> Bool {
    println("bannerViewActionShouldBegin")
    return true 
}
func bannerView(banner: ADBannerView!, didFailToReceiveAdWithError error: NSError!) {
    println("bannerViewError")
    println(error)
}

这基本上允许我在场景套件显示顶部添加标准 iAd 视图。今天的广告 - 明天,世界!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-17
    • 1970-01-01
    • 2018-06-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多