[英]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
}
如果你使用的是 iOS 7,擴展方法和屬性已添加到 UIViewController 以支持處理 iAd:
看
要顯示 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.