我试图用像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了吗?
发布于 2014-07-12 04:40:05
我找到了一个解决方案,如何实现它。(您也可以在每个方法中使用"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
}See the following answer, on how to do it without IBBuilder!
发布于 2015-03-02 20:36:16
如果您使用的是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
}
}发布于 2015-02-05 23:53:27
T先生的回答包含了很多无用的代码。
您所需要的就是在控制器中显示广告的这个部分:
override func viewDidLoad() {
super.viewDidLoad()
canDisplayBannerAds = true
}当你不需要广告的时候,你可以使用canDisplayBannerAds = false。
它的作用-将你的控制器包装到另一个控制器中,在底部有广告横幅。此功能从iOS7开始可用。
它不可能获得委托消息,所以如果你需要它,你应该用ADBannerView实例变量替换它。
https://stackoverflow.com/questions/24695302
复制相似问题