무료 버전 앱에 iad 배너를 넣으려고하면 배너를 부드럽게 실행하고 테스트 광고가 올바르게 실행되고 있다는 확인 메시지가 표시됩니다. 하지만 그때 내 응용 프로그램을 재고보기를 닫았을 때, 나는 버튼을 누를 수 있지만 그들의 행동을 실행하지 않았다. 이것이 제가하는 일입니다. 왜냐하면 나는 bannerViewActionDidFinish :가 호출되지 않았다고 생각합니다. bannerViewActionShouldBegin : buttonTest setEnabled = NO로 설정 한 다음 bannerTest setEnabled = YES로 설정합니다 (bannerViewActionDidFinish :). 결과적으로 배너 테스트 뷰를 닫을 때 버튼이 비활성화되고 활성화되지 않았습니다.IAd bannerViewActionDidFinish : 테스트 실행 확인보기가 닫힌 후 실행되지 않았습니다.
.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;
}