簡體   English   中英

Swift - ADBannerView

[英]Swift - ADBannerView

我試圖用像 Objective C 這樣的舊方法來實現 ADBannerView 但沒有成功。 一切正常,但廣告沒有出現,它保持一個空白字段。

func bannerViewDidLoadAd(banner: ADBannerView!) {
    UIView.beginAnimations(nil, context: nil)
    UIView.setAnimationDuration(1)
    banner.alpha = 1
    UIView.commitAnimations()
}

func bannerView(banner: ADBannerView!, didFailToReceiveAdWithError error: NSError!) {
    UIView.beginAnimations(nil, context: nil)
    UIView.setAnimationDuration(1)
    banner.alpha = 0
    UIView.commitAnimations()
}

任何已經在 Swift 上嘗試過 iAd 的人?

我找到了一個解決方案,如何實現它。 (您也可以在每個方法中使用“banner.alpha 1.0”或其他東西。)

//import ... your normal imports as UIKit etc.
import iAd

class YourClassViewController: UIViewController, ADBannerViewDelegate {

   @IBOutlet var adBannerView: ADBannerView //connect in IB connection inspector with your ADBannerView

   override func viewDidLoad() {
      super.viewDidLoad()

      self.canDisplayBannerAds = true
      self.adBannerView.delegate = self
      self.adBannerView.hidden = true //hide until ad loaded
   }

   func bannerViewWillLoadAd(banner: ADBannerView!) {
      NSLog("bannerViewWillLoadAd")
   }

   func bannerViewDidLoadAd(banner: ADBannerView!) {
      NSLog("bannerViewDidLoadAd")
      self.adBannerView.hidden = false //now show banner as ad is loaded
   }

   func bannerViewActionDidFinish(banner: ADBannerView!) {
      NSLog("bannerViewDidLoadAd")

      //optional resume paused game code

   }

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

      //optional pause game code

      return true
   }

   func bannerView(banner: ADBannerView!, didFailToReceiveAdWithError error: NSError!) {
      NSLog("bannerView")
   }

   //... your class implementation code

}

請參閱以下答案,了解如何在沒有 IBBuilder 的情況下進行操作!

如果你使用的是 iOS 7,擴展方法和屬性已添加到 UIViewController 以支持處理 iAd:

https://developer.apple.com/library/prerelease/ios/documentation/iAd/Reference/UIViewController_iAd_Additions/index.html

要顯示 iAd,您首先需要添加 iAd 框架,轉到項目屬性,常規選項卡,在鏈接的框架和庫部分添加 iAd.framework。

在您的視圖控制器中,導入 iAd 以訪問 iAd 擴展。 最后在 viewDidLoad 中,設置 self.canDisplayBannerAds = true。

要移除廣告,請將 canDisplayBannerAds 設置為 false

請注意,無需在故事板中或以編程方式創建 AdBannerView,您的視圖控制器也無需實現 AdViewDelegate。

import UIKit
import iAd

class ViewController : UIViewController
{
    override func viewDidLoad()
    {
        super.viewDidLoad()
        //That's it
        self.canDisplayBannerAds = true
    }
}

T 先生的回答包含了很多無用的代碼。

您只需要這部分即可在控制器中顯示廣告:

override func viewDidLoad() {
      super.viewDidLoad()

      canDisplayBannerAds = true
}

當您不需要廣告時,您可以canDisplayBannerAds = false

它的作用 - 將您的控制器包裝到另一個底部帶有廣告橫幅的控制器中。 此功能自iOS7可用

用它獲取委托消息是不可能的,所以如果你需要它——你應該用ADBannerView實例變量替換它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM