ADBannerView没有显示出来

时间:2015-04-21 19:36:14

标签: ios swift uiviewcontroller iad

我正试图将iAd Banner放入我的游戏中!我已经在游戏中主演了一段时间等待正常的Apple iAd广告出现,但事实并非如此。它根本没出现在我的屏幕上!

我做错了吗?

或者它最终会出现吗?

import iAd


var iAdBanner = ADBannerView()

var bannerVisible = false

class GameViewController: UIViewController, ADBannerViewDelegate{


override func viewDidLoad() {
    super.viewDidLoad()

    if let scene = GameScene.unarchiveFromFile("GameScene") as? GameScene {
        // Configure the view.
        let skView = self.view as SKView
        /* Set the scale mode to scale to fit the window */
        scene.scaleMode = .AspectFill
        skView.presentScene(scene)



        iAdBanner.frame = CGRectMake(0, self.view.frame.size.height, self.view.frame.width, 50)
        iAdBanner.delegate = self
        bannerVisible = false
    }
}

// Show banner, if Ad is successfully loaded.
func bannerViewDidLoadAd(banner: ADBannerView!) {
    if(bannerVisible == false) {

        // Add banner Ad to the view
        if(iAdBanner.superview == nil) {
            self.view.addSubview(iAdBanner)
        }

        // Move banner into visible screen frame:
        UIView.beginAnimations("iAdBannerShow", context: nil)
        banner.frame = CGRectOffset(banner.frame, 0, -banner.frame.size.height)
        UIView.commitAnimations()

        bannerVisible = true
    }

}

// Hide banner, if Ad is not loaded.
func bannerView(banner: ADBannerView!, didFailToReceiveAdWithError error: NSError!) {
    if(bannerVisible == true) {
        // Move banner below screen frame:
        UIView.beginAnimations("iAdBannerHide", context: nil)
        banner.frame = CGRectOffset(banner.frame, 0, banner.frame.size.height)
        UIView.commitAnimations()
        bannerVisible = false
    }

}

2 个答案:

答案 0 :(得分:2)

您尚未将横幅视图添加到视图中。您已在self.view.addSubview(iAdBanner)中调用bannerViewDidLoadAd,在添加横幅视图之前不会调用该viewDidLoad。您需要事先添加横幅视图(例如,在{{1}})。

此外,您无法将横幅视图框更改为您想要的任何尺寸。

阅读iAD编程指南中的Banner View Sizes(实际阅读完整指南)。它有代码片段(虽然在ObjC中不是Swift)。

它清楚地说:

  

iAd支持纵向和横向应用的不同横幅尺寸。   广告的确切大小取决于横幅所在的设备   正在展示。在iPhone上,肖像广告是320 x 50   点和480 x 32点的景观广告。在iPad上   肖像广告是768 x 66点和1024 x 66点   景观广告。将来,可能会有额外的尺寸   由iAd曝光。

在下一段中:

  

为确保正确显示广告,请使用横幅视图   必须始终调整大小以匹配其中一个内置广告尺寸。   ADBannerView类通过阻止您更改来强制执行此操作   框架直接。相反,您可以更改横幅视图的框架   设置currentContentSizeIdentifier属性。改变价值   存储在此属性中会将横幅视图的帧大小调整为匹配   提供的标识符的大小。

答案 1 :(得分:1)

也许查看你的故事板 - >你的viewcontroller包含iAd - >查看属性检查器选项卡 - >专注于Extend Edges,&取消选中此属性。希望这有帮助。请读这个答案。