ios - 向 Sprite Kit Landscape 添加 iAd

标签 ios objective-c sprite-kit

我的 View Controller 中有以下代码:

- (void)viewWillLayoutSubviews {
    [super viewWillLayoutSubviews];

    // Configure the view.
    SKView * skView = (SKView *)self.view;
    if (!skView.scene) {
        skView.showsFPS = NO;
        skView.showsNodeCount = NO;
        skView.showsDrawCount = NO;

        // Create and configure the scene.
        SKScene * scene = [MenuScene sceneWithSize:skView.bounds.size];
       scene.scaleMode = SKSceneScaleModeAspectFill;

        self.canDisplayBannerAds = YES;

        // Present the scene.
        [skView presentScene:scene];
    }
}

当我运行应用程序时,它会立即崩溃。我收到以下错误消息:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIView scene]: unrecognized selector sent to instance

我无法使用 SKView *skView = (SKView *)self.originalContentView;因为应用程序处于横向模式。有没有办法在 Landscap Sprite Kit 游戏中显示 iAd?

编辑:

我刚刚将此代码添加到 View Controller ,但我得到了相同的结果..
#pragma mark iAd Delegate Methods

-(void)bannerViewDidLoadAd:(ADBannerView *)banner {
    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:1];
    [banner setAlpha:1];
    [UIView commitAnimations];
}

最佳答案

我遇到了这个问题并通过创建 ABBannerView 解决了它属性并将其添加为 subview 。

在我的 ViewController 类中:

adView = [[ADBannerView alloc] initWithFrame:CGRectZero];
adView.delegate = self;
[adView setFrame:CGRectMake(0, 0, 1024, 768)]; // set to your screen dimensions
[self.view addSubview:adView];

重要的是不要设置 canDisplayBannerAds View Controller 的属性。

我相信正在发生的事情是,如果您确实设置了 canDisplayBannerAds属性为 true, View 被修改并且不再与 SKView 兼容,并且不再具有场景属性。

我确实必须设置框架,以便尺寸正确,否则它是纵向的。

关于ios - 向 Sprite Kit Landscape 添加 iAd,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22065908/

相关文章:

objective-c - 将自定义 subview (在 xib 中创建)添加到 View Controller 的 View - 我在做什么错

iphone - 核心数据错误 133020 : problems merging in a save:

ios - 如何在 Swift 3.2 中使用修改 for 循环?

iphone - 获取 NULL 缓存

iOS SpriteKit : applyForce to physics body totally different effect depending on device model

android - 为基于 IOS 和 Android 的设备编写一个客户端

objective-c - 知道 textField :shouldChangeCharactersInRange:replacementString: 中完整更改的字符串

objective-c - 为什么我的 UIButton 的 selected 属性设置不正确?

objective-c - SKPhysicsBody bodyWithPolygonFromPath 内存泄漏

ios - 在 iOS 9 上关闭 viewController 时的延迟