【问题标题】:How can I enable iAd when using Sprite Kit?使用 Sprite Kit 时如何启用 iAd?
【发布时间】:2013-11-02 08:54:32
【问题描述】:

在IOS 7中,我们可以很容易的启用iAd:

self.canDisplayBannerAds = YES;

在 UIViewController 的 ViewDidLoad 代码中

但是,我不能在我的 ViewController(加载 SKScene 的 ViewControl)中使用它。我的游戏在加载时崩溃了。

那么如何在我的游戏中激活 iAd(使用 Sprite Kit)?

【问题讨论】:

  • 我需要在 Landscape 中的游戏,所以我将其添加到:- (void)viewWillLayoutSubviews 但它会崩溃。但是,如果我给它在 viewDidLoad 中,这个游戏将是 portrait。我何时可以添加此代码 self.canDisplayBannerAds = YES; 来启用 iAD?

标签: ios7 iad sprite-kit


【解决方案1】:

您只能在 UIViewController 子类中显示 iAd。你做得对。将以下代码放在您的 UIViewController 中,而不是 SKScene 中。

具体代码请参考本教程:http://tutorials.veasoftware.com/2013/10/10/how-to-add-iads/

【讨论】:

  • *** 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[UIView 场景]:无法识别的选择器发送到实例 0x17e57680”当我这样做时会出现一些错误。你在游戏中尝试过吗?
  • 您的 iAd 代码在哪里?在 UIViewController 中还是在 SKScene 中?
  • in - (void)viewWillLayoutSubviews 因为我需要我的游戏风景。
  • 请添加您的整个代码,以便我更好地了解问题所在。
  • - (void)viewWillLayoutSubviews { [super viewWillLayoutSubviews]; SKView * skView = (SKView *)self.view; if (!skView.scene) { SKScene * scene = [LKMenuScene sceneWithSize:skView.bounds.size];场景.scaleMode = SKSceneScaleModeAspectFill; [skView presentScene:scene]; self.canDisplayBannerAds = YES; } } 我在 viewWillLayoutSubview 中编写这段代码是因为我需要我的游戏风景
【解决方案2】:

您可能正在访问视图属性。使用 iAds 时,您需要将 .view 替换为 .originalContentView。例如:

SKView* skView = (SKView *)self.view;

替换为

SKView* skView = (SKView *)self.originalContentView;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多