iAd不在Xcode 6中工作

时间:2015-01-28 02:43:01

标签: ios swift iad

我的代码出现问题。我正在尝试以编程方式在Xcode中添加iAd到我的视图。有几次它随机工作,我再次运行它而不更改任何代码,它不再工作。在这几次它随机工作,当我切换到另一个视图,然后回到iAd所在的那个,iAd只是一个空的iAd帧,没有显示它应该是动画。它根本就没有加载iAd。请帮忙!代码:

import UIKit
import Foundation
import iAd

class ViewController: UIViewController, ADBannerViewDelegate {
//variables*******************************************
var adBannerView = ADBannerView(frame: CGRect.zeroRect)

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
    self.canDisplayBannerAds = true
    loadAds()
}



override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

//iAd**************************************************

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

func bannerViewWillLoadAd(banner: ADBannerView!)
{

    println("sort of working1")

}

func bannerViewDidLoadAd(banner: ADBannerView!)
{

    adBannerView.hidden = false
    println("sort of working2")

}

func bannerViewActionDidFinish(banner: ADBannerView!)
{


    println("sort of working3")

}

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

    println("sort of working4")
    return true 
}

func bannerView(banner: ADBannerView!, didFailToReceiveAdWithError error: NSError!)
{
    adBannerView.hidden = true
    println("error1")
}

}

2015年1月28日更新: 不知何故,iAds现在可以在不改变代码的情况下工作,但我遇到了另一个问题。在我离开iAd所在的视图后,它变成一个空白的白色框架,框架的底角有一个小的iAd标志。另外,另一个大问题是它使用iAd使视图的标签栏变暗。

2 个答案:

答案 0 :(得分:0)

即使是println也没有用? iAds并不总是显示,取决于与iAd服务器的连接,这就是你应该实现didFailToReceiveAdWithError并隐藏横幅的原因,以防由于某些问题而没有从服务器传来信息。

答案 1 :(得分:0)

如果您使用自动iAd演示文稿,则在self.canDisplayBannerAds = true之后不需要执行任何其他操作。当iAd可用时,您的视图控制器将自动缩小并触发自动布局。 iAd将在底部显示。

因此,您的示例代码可以是:

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
    self.canDisplayBannerAds = true
}

如果您需要不同的行为,这是一个简单的iAd example。它使用单个ADBannerView并可以将其显示在视图的顶部。 无论如何,考虑手动实例化ADBannerView的正确方法是:ADBannerView(adType: ADAdType.Banner)