首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swift - ADBannerView

Swift - ADBannerView
EN

Stack Overflow用户
提问于 2014-07-11 18:10:49
回答 3查看 9.3K关注 0票数 5

我试图用像Objective C这样的老方法来实现ADBannerView,但是没有成功。一切正常,但广告没有出现,它仍然是一个空白区。

代码语言:javascript
复制
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了吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-07-12 04:40:05

我找到了一个解决方案,如何实现它。(您也可以在每个方法中使用"banner.alpha 1.0“或其他东西。)

代码语言:javascript
复制
//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

}

See the following answer, on how to do it without IBBuilder!

票数 17
EN

Stack Overflow用户

发布于 2015-03-02 20:36:16

如果您使用的是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。

代码语言:javascript
复制
import UIKit
import iAd

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

Stack Overflow用户

发布于 2015-02-05 23:53:27

T先生的回答包含了很多无用的代码。

您所需要的就是在控制器中显示广告的这个部分:

代码语言:javascript
复制
override func viewDidLoad() {
      super.viewDidLoad()

      canDisplayBannerAds = true
}

当你不需要广告的时候,你可以使用canDisplayBannerAds = false

它的作用-将你的控制器包装到另一个控制器中,在底部有广告横幅。此功能从iOS7开始可用。

它不可能获得委托消息,所以如果你需要它,你应该用ADBannerView实例变量替换它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24695302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档