TableViewController 中的 AdBannerView 显示在 TableView 之后

AdBannerView in TableViewController is shown after TableView

我需要插入一个 AdBannerView 到一个 TableViewController 并且位置应该在屏幕底部。我用了 post as a guide which is written by Daniel Storm

显示了广告,但即使 tableview 中只有 1 个单元格,我也需要向下滚动才能看到它。我也希望广告对屏幕旋转做出反应。

AppDelegate.swift

import UIKit
import iAd // Import iAd

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate, ADBannerViewDelegate {

// 包括我们横幅的代表

var window: UIWindow?
var adBannerView = ADBannerView() // Create our one ADBannerView

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    // Set delegate and hide banner initially
    adBannerView.delegate = self
    adBannerView.hidden = true
    return true
}

func bannerViewDidLoadAd(banner: ADBannerView!) {
    print("bannerViewDidLoadAd")
    adBannerView.hidden = false
}

func bannerViewActionDidFinish(banner: ADBannerView!) {
    print("bannerViewActionDidFinish")
}

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

ViewController.swift(在我的例子中是 tableviewcontroller)

import UIKit

class ViewController: UIViewController {

let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate // Create reference to our app delegate

override func viewWillAppear(animated: Bool) {
    // Position
    appDelegate.adBannerView.center = CGPoint(x: view.frame.midX,
        y: view.frame.height - appDelegate.adBannerView.frame.height / 2)
    // Add to view
    view.addSubview(appDelegate.adBannerView)
}

我想你在你的 VC 中添加了 bannerView 之后添加了你的 tableview,所以 tableView 覆盖了 bannerView,你可以调整 bannerView 的 zPosition 来重新排序,在你的 [=11= 中添加这一行]:

adBannerView.layer.zPosition = 10

顺便说一句,我认为这个过程应该在 ViewDidLoad 完成。

如果您只想要屏幕底部的横幅广告,您可以简单地说

override func viewDidLoad() {
        super.viewDidLoad()
        self.canDisplayBannerAds = true
    }

它会像他们说的那样自动工作。

我建议观看 this 视频以了解 iAd API