【问题标题】:IAd bannerViewActionDidFinish: didn't execute after the test running view confirmation was closedIAd bannerViewActionDidFinish: 测试运行视图确认关闭后未执行
【发布时间】:2012-04-12 01:58:03
【问题描述】:

我正在尝试在我的免费版应用程序上放置一个 iad 横幅,当按下该横幅时,横幅运行顺畅,并且查看确认测试广告正常运行。但是当我关闭该视图时,我的应用程序已存货,我可以按下按钮,但它们没有执行它们的操作。这就是我所做的,这就是为什么我认为没有调用 bannerViewActionDidFinish: 的原因。在bannerViewActionShouldBegin:我设置buttonTest setEnabled = NO,然后在bannerViewActionDidFinish:中设置buttonTest setEnabled = YES。结果是当横幅测试视图关闭时按钮被禁用而不是启用。

.h 文件

#import <iAd/iAd.h>

ADBannerView *adView;
BOOL bannerIsVisible;

@property (nonatomic, assign)BOOL bannerIsVisible;

.m 文件

@synthesize bannerIsVisible;

- (void)viewDidLoad
{
    adView = [[ADBannerView alloc] initWithFrame:CGRectZero];
    adView.frame = CGRectOffset(adView.frame, 0, -50);
    adView.requiredContentSizeIdentifiers = [NSSet       setWithObject:ADBannerContentSizeIdentifierLandscape];
    adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifierLandscape;
    [self.view addSubview:adView];
    adView.delegate=self;
    self.bannerIsVisible=NO;      

    [super viewDidLoad];
}

- (void)bannerViewDidLoadAd:(ADBannerView *)banner
{
    if (!self.bannerIsVisible)
    {
        [UIView beginAnimations:@"animateAdBannerOn" context:NULL];
        banner.frame = CGRectOffset(banner.frame, 0, 50);
        [UIView commitAnimations];
        self.bannerIsVisible = YES;
    }
}

- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error
{
    if (self.bannerIsVisible)
    {
        [UIView beginAnimations:@"animateAdBannerOff" context:NULL];
        banner.frame = CGRectOffset(banner.frame, 0, -50);
        [UIView commitAnimations];
        self.bannerIsVisible = NO;
    }
}

- (BOOL)bannerViewActionShouldBegin:(ADBannerView *)banner willLeaveApplication:(BOOL)willLeave
{
    NSLog(@"Banner view is beginning an ad action");

   [buttonTest setEnabled:NO];

   return YES;
}

-(void)bannerViewActionDidFinish:(ADBannerView *)banner
{
   // resume everything you've stopped

   [buttonTest setEnabled:YES];
}

- (void)viewDidUnload
{
    adView.delegate = nil;
}

【问题讨论】:

    标签: xcode iad adbannerview


    【解决方案1】:

    在这种情况下,您可以检查bannerViewActionShouldBegin:willLeaveApplication:willLeave: 参数

    - (BOOL)bannerViewActionShouldBegin:(ADBannerView *)banner willLeaveApplication:(BOOL)willLeave
    {
         NSLog(@"Banner was clicked on; will%sleave application", willLeave ? " " : " not ");
    
        [buttonTest setEnabled:!willLeave];
    
        return YES;
    }
    

    这样,如果您不离开应用程序进行 iAd 点击,buttonTest 将保持启用状态。

    【讨论】:

      猜你喜欢
      • 2011-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-06
      • 2016-05-19
      • 2011-04-09
      相关资源
      最近更新 更多