【发布时间】:2015-08-11 00:38:28
【问题描述】:
我使用 SpriteBuilder 制作了一个游戏,它是用 Swift 编写的。我想在向 App Store 发布更新之前添加广告。有人可以帮我解决这个问题吗?
【问题讨论】:
-
你应该通过展示你试图做的事情来表现出一些努力。
标签: swift iad spritebuilder
我使用 SpriteBuilder 制作了一个游戏,它是用 Swift 编写的。我想在向 App Store 发布更新之前添加广告。有人可以帮我解决这个问题吗?
【问题讨论】:
标签: swift iad spritebuilder
要将 iAd 添加到您的游戏中,您需要将 iAd 框架添加到您的应用程序(通过构建阶段),并在处理您的 iAd 实现的类中添加导入语句 import iAd。
添加到 Swift 游戏中的最简单的 iAd 广告是横幅广告:
override func viewDidLoad() {
super.viewDidLoad()
self.canDisplayBannerAds = true
}
确保导入 iAd 并将 AdBannerViewDelegate 协议添加到您的类声明中:
import iAd
class MasterViewController: UITableViewController, NSFetchedResultsControllerDelegate,ADBannerViewDelegate
然后您需要创建实际的横幅视图,设置委托(在 ViewDidLoad 中)并添加两个委托方法,以便您知道何时从视图中添加/删除广告横幅:
bannerViewDidLoadAd:
bannerView:didFailToReceiveAdWithError:
【讨论】:
self.canDisplayBannerAds = true 并创建自己的ADBannerView。您将创建两个横幅广告。 self.canDisplayBannerAds = true 为您创建和管理ADBannerView。你要么使用self.canDisplayBannerAds = true,要么实现你自己的ADBannerView不是两者都。
这相当容易。
1) 导入 iAd 框架 >Build Phases> Link Binary With Libraries> 找到 iAd
2) 从对象库中拖出一个 iAd BannerView
3) 制作一个将 iAd BannerView 连接到您的 VC 文件的插座
4) 将委托添加到您的 VC 类中
import iAd
class ViewController: UIViewController, ADBannerViewDelegate{
@IBOutlet var adBannerView: ADBannerView?
override func viewDidLoad(){
self.canDisplayBannerAds = true
self.ADBannerView?.delegate = self
self.ADBannerView.hidden = true
}
func bannerViewWillLoadAd(banner: AdBannerView!){ // any addition set up you want
}
func bannerViewDidLoadAd(banner: ADBannerView!){
self.ADBannerView?.hidden = false
}
func bannerViewActionDidFinish(banner: ADBannerView!){// any addition set up you want
}
func bannerViewActionShouldBegin(banner: ADBannerView!, willLeaveApplication willLeave: Boll) -> Bool {
return true
}
func bannerView(banner: ADBannerView!, didFailToReceiveAdWithError error: NSError!){
self.adBannerView?.hidden = false
}
}
当然,您必须调整以随时随地显示。
【讨论】:
self.canDisplayBannerAds = true 并创建自己的ADBannerView。您将创建两个横幅广告。 self.canDisplayBannerAds = true 为您创建和管理ADBannerView。你要么使用self.canDisplayBannerAds = true,要么实现你自己的ADBannerView不是两者都。