横幅广告移动时,横幅广告不可点击

我有一个在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]; }