横幅广告移动时,横幅广告不可点击
我有一个在Cocos2d应用程序工作的iAd横幅。
以下是我用来展示广告的CCLayer子类的代码。 在DidLoad上,添加变得可见,底部菜单向上滑动以补偿。
-(id) init { if( (self=[super init]) ) { CGSize size = [[CCDirector sharedDirector] winSize]; UIViewController *controller = [[UIViewController alloc] init]; controller.view.frame = CGRectMake(0, size.height -32, 320, 32); ADBannerView *adView = [[ADBannerView alloc] initWithFrame:CGRectZero]; adView.requiredContentSizeIdentifiers = [NSSet setWithObject:ADBannerContentSizeIdentifierLandscape]; adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifierLandscape; [controller.view addSubview:adView]; adView.delegate = self; [[[CCDirector sharedDirector] view] addSubview:controller.view]; [[[CCDirector sharedDirector] view] setNeedsLayout]; // I was told this would fix it, but it fails to. } return self; } - (void)bannerViewDidLoadAd:(ADBannerView *)banner { if (!bannerIsVisible) { NSLog(@"bannerViewDidLoadAd"); [UIView beginAnimations:@"animateAdBannerOn" context:NULL]; banner.frame = CGRectOffset(banner.frame, 0, -32); //the offending line self.position = ccpAdd(ccp(0, 32), self.position); [UIView commitAnimations]; bannerIsVisible = YES; } } - (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error { if (bannerIsVisible) { NSLog(@"bannerView:didFailToReceiveAdWithError:"); [UIView beginAnimations:@"animateAdBannerOff" context:NULL]; banner.frame = CGRectOffset(banner.frame, 0, 32); //the other offending line self.position = ccpAdd(ccp(0, -32), self.position); [UIView commitAnimations]; bannerIsVisible = NO; } }
当这些行被禁用,横幅是可点击的,但丑陋的白色横幅是可见的。 这是怎么回事? 我如何解决或解决它?
Cocos2d_2.0_iAd_Sample
Cocos2d_3.0_iAd_Sample
在你的场景中做这个。
-(void)onEnter { [super onEnter]; mIAd = [[MyiAd alloc] init]; } -(void)play { [self hideAdsBanner]; }
-(void)hideAdsBanner { if(mIAd) [mIAd RemoveiAd ]; } -(void)onExit { if(mIAd) { [mIAd release]; mIAd = nil; } [super onExit]; }