好了,在仿真测试后,事实证明,这种问题只发生在实际设备上 ...我将如何解决这一问题?
我正在与SpriteKit iOS应用程序和我实施的iAD。 一切工作或多或少像我希望如此,除了一两件事。 当我轻按广告,它带给我的全屏广告,符合市场预期,但在关闭该广告的当前视图冻结,在什么也没有发生视觉。 我知道应用程序仍在运行,因为当我再次再次接近了它的点击横幅广告游戏恢复正常状态,比赛不得不同时在视觉上冻结的进展。 这是旗帜,是如何在我的视图控制器类(IAD的代表)初始化:
self.canDisplayBannerAds = YES;
CGRect bannerFrame = CGRectMake(0, 20, scene.size.width, 50);
banner = [[ADBannerView alloc] initWithAdType:ADAdTypeBanner];
banner.delegate = self;
banner.frame = bannerFrame;
[banner setAlpha:0];
[self.view addSubview:banner];
而这些都是加载方法,也是在视图控制器类:
- (void) bannerViewDidLoadAd:(ADBannerView *) bannerM
{
NSLog(@"Ad Loaded");
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:1];
[bannerM setAlpha:1];
[UIView commitAnimations];
}
- (void) bannerView:(ADBannerView *)bannerM didFailToReceiveAdWithError:(NSError *)error
{
NSLog(@"Ad Failed");
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:1];
[bannerM setAlpha:0];
[UIView commitAnimations];
}
我真的不明白的问题,或者为什么它正在发生...任何帮助,将不胜感激!
谢谢,
StrongJoshua
编辑在这里是被称为横幅广告时打开和关闭两种方法:
- (BOOL) bannerViewActionShouldBegin:(ADBannerView *)banner willLeaveApplication:(BOOL)willLeave
{
if(playing)
{
NSLog(@"Ad Pause");
SKView *v = (SKView *)self.view;
NSLog(@"2");
SKScene *s = (SKScene *)v.scene;
NSLog(@"3");
WBPlayScene *p = (WBPlayScene *) s;
NSLog(@"4");
[p.logic pause:YES];
NSLog(@"Done");
}
return YES;
}
- (void) bannerViewActionDidFinish:(ADBannerView *)banner
{
if(playing)
{
NSLog(@"Ad Unpause");
[((WBPlayScene *)((SKView *)self.view).scene).logic pause:NO];
}
}
固定的原因,所有这些NSLogs是因为游戏崩溃当我尝试暂停。 达到游戏崩溃后“2”,所以在SKScene *s = (SKScene *)v.scene;
。 它给人的错误[UIView scene]: unrecognized selector sent to instance
,我不明白为什么...... 解决方法:要解决这个枝节问题,我改变self.view
到self.originalContentView
并得到了SKView而不是广告横幅的视图。
非常感谢您的帮助!