使用Swift在xcode 6中进行iAd

前端之家收集整理的这篇文章主要介绍了使用Swift在xcode 6中进行iAd前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在努力在场景中实现横幅广告,但它始终报告“线程1:EXC_BREAKPOINT(代码= EXC_ARM_BREAKPOINT,子代码= Oxdefe),程序停止运行.
我在关于iAd(“ Swift – ADBannerView”)的另一个问题中引用了 Mr. T’s answer,但仍然无法做到.

代码如下所示:

  1. import UIKit
  2. import SpriteKit
  3. import iAd
  4. class GameViewController: UIViewController,ADBannerViewDelegate {
  5.  
  6. @IBOutlet var adBannerView: ADBannerView
  7. override func viewDidLoad() {
  8. super.viewDidLoad()
  9. println("view loaded")
  10.  
  11. //iAd
  12. self.canDisplayBannerAds = true
  13. self.adBannerView.delegate = self
  14. self.adBannerView.alpha = 0.0
  15. if let scene = GameScene.unarchiveFromFile("GameScene") as? GameScene {
  16. // Configure the view.
  17. let skView = self.view as SKView
  18. skView.showsFPS = true
  19. skView.showsNodeCount = true
  20.  
  21. /* Sprite Kit applies additional optimizations to improve rendering performance */
  22. skView.ignoresSiblingOrder = true
  23.  
  24. /* Set the scale mode to scale to fit the window */
  25. scene.scaleMode = .AspectFill
  26.  
  27. skView.presentScene(scene)
  28. }
  29. }
  30. //iAd
  31. func bannerViewWillLoadAd(banner: ADBannerView!) {
  32.  
  33.  
  34. println("sort of working1")
  35.  
  36. }
  37.  
  38. func bannerViewDidLoadAd(banner: ADBannerView!) {
  39.  
  40.  
  41. self.adBannerView.alpha = 1.0
  42. println("sort of working2")
  43.  
  44. }
  45.  
  46. func bannerViewActionDidFinish(banner: ADBannerView!) {
  47.  
  48.  
  49. println("sort of working3")
  50.  
  51. }
  52.  
  53. func bannerViewActionShouldBegin(banner: ADBannerView!,willLeaveApplication willLeave: Bool) -> Bool {
  54.  
  55.  
  56.  
  57. println("sort of working4")
  58. return true
  59. }
  60.  
  61. func bannerView(banner: ADBannerView!,didFailToReceiveAdWithError error: NSError!) {
  62.  
  63.  
  64. }
  65. }

我在Main.storyboard中创建了一个ADBannerView,并将其与@IBOutlet adBannerView相关联.

有谁帮我搞清楚了?

这就是我做到的,可能并非所有这些都是必要的.

我没有在故事板中使用横幅,因此IBOutlet不是必需的.

此外,如果手动创建横幅,则无需设置self.canDisplayBannerAds

功能(从ObjC移植)是我展示广告的方式.

  1. func loadAds(){
  2. adBannerView = ADBannerView(frame: CGRect.zeroRect)
  3. adBannerView.center = CGPoint(x: adBannerView.center.x,y: view.bounds.size.height - adBannerView.frame.size.height / 2)
  4. adBannerView.delegate = self
  5. adBannerView.hidden = true
  6. view.addSubview(adBannerView)
  7. }

这在viewDidLoad中调用.然后,在didLoadAd委托方法中,我设置了adBannerView.hidden = false,在didFailToReceiveAdWithError中,adBannerView.hidden = true

在这种情况下,我认为隐藏比alpha更好,因为它感觉更自然.我相信(但不确定)当隐藏时,GPU根本不会绘制视图,而alpha为0时,它仍然被绘制,但是不可见(如果我错了,请纠正我).

这是我的设置,它对我有用,所以希望它也适用于你的情况!

猜你在找的Swift相关文章