我有一个奇怪的问题。 iAds工作。只要我初始化一个UIButton(使用“[self initCloseAdButtonWithFrame:_frame];
”)iAds停止工作,而按钮在正确的位置初始化。此代码根据广告的可用性将广告横幅放入和滑出。iOS - 初始化UIButton强制iAd消失
为什么closeButton的初始化会破坏广告功能?
ViewController.m
#pragma mark - Ads
-(void)initiAdBanner
{
DLog(@"");
if (!self.iAdBannerView)
{
CGRect rect = CGRectMake(0, self.view.frame.size.height, 0, 0);
self.iAdBannerView = [[ADBannerView alloc]initWithFrame:rect];
self.iAdBannerView.delegate = self;
self.iAdBannerView.hidden = TRUE;
[self.view addSubview:self.iAdBannerView];
}
}
#pragma mark - ADBanner delegate methods -
// Called before the add is shown, time to move the view
- (void)bannerViewWillLoadAd:(ADBannerView *)banner
{
DLog(@"iAd load");
[self hideBanner:self.gAdBannerView];
[self showBanner:self.iAdBannerView];
}
// Called when an error occured
- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error
{
DLog(@"iAd error: %@", error);
[self hideBanner:self.iAdBannerView];
GADRequest *request = [GADRequest request];
request.testDevices = [NSArray arrayWithObjects:GAD_SIMULATOR_ID, nil];
[self.gAdBannerView loadRequest:request];
}
#pragma mark - Banner hide and show -
// Hide the banner by sliding down
-(void)hideBanner:(UIView*)banner
{
if (banner && ![banner isHidden])
{
[UIView beginAnimations:@"hideBanner" context:nil];
banner.frame = CGRectOffset(banner.frame, 0, banner.frame.size.height);
[UIView commitAnimations];
banner.hidden = TRUE;
if(closeButton){
[closeButton setHidden:TRUE];
}
}
}
// Show the banner by sliding up
-(void)showBanner:(UIView*)banner
{
if (banner && [banner isHidden])
{
CGRect _frame2 = CGRectOffset(banner.frame, 0, -banner.frame.size.height);
CGRect _frame = CGRectOffset(banner.frame, 0, -banner.frame.size.height);
[self initCloseAdButtonWithFrame:_frame];
[UIView beginAnimations:@"showBanner" context:nil];
banner.frame = _frame2;
[UIView commitAnimations];
banner.hidden = FALSE;
}
}
//button initialize
-(void)initCloseAdButtonWithFrame:(CGRect)frame{
DLog(@"");
closeButton = [UIButton buttonWithType:UIButtonTypeCustom];
[closeButton addTarget:self
action:@selector(inAppPurchase)
forControlEvents:UIControlEventTouchUpInside];
UIImage *_closeImage = [UIImage imageNamed:@"closeButton.png"];
UIImage *closeImage = [UIImage imageWithCGImage:_closeImage.CGImage scale:_closeImage.scale orientation:UIImageOrientationDown];
[closeButton setBackgroundImage:closeImage forState:UIControlStateNormal];
[closeButton setBackgroundImage:closeImage forState:UIControlStateHighlighted];
closeButton.frame = CGRectMake(frame.size.width - closeImage.size.width, -5 + self.view.frame.size.height -frame.size.height - closeImage.size.height, closeImage.size.width, closeImage.size.height);
[self.view insertSubview:closeButton atIndex:2];
[closeButton setHidden:FALSE];
}
-(void)inAppPurchase{
DLog(@"");
}
ShowBanner经由IAD设备委托调用。在Show banner中,该按钮被初始化。只有在按钮未初始化的情况下,代码才能工作(广告显示)。
特别是,一切正常,直到按钮被添加到子视图。
将按钮添加到子视图会使广告消失 – stackOverFlew
此问题与广告暴民无关,该标记不应置于问题中。 –
我不同意,注意代码:self.gAdBannerView - gAdBannerView是admob – stackOverFlew