我正在尝试创建2个iAd,但我只有一个在模拟器上。我现在无法用设备检查它。为什么我只有一个?我只有第二个iAd
我的代码是:
adView1 = [[ADBannerView alloc] initWithAdType:ADAdTypeBanner];
adView1.frame = CGRectOffset(adView1.frame, 0, 50);
adView1.delegate = self;
[self.backgroundView addSubview:adView1];
adView2 = [[ADBannerView alloc] initWithAdType:ADAdTypeBanner];
adView2.frame = CGRectOffset(adView2.frame, 0, 200);
adView2.delegate = self;
[self.backgroundView addSubview:adView2];
- (void)bannerViewDidLoadAd:(ADBannerView *)banner
{
if (!self.bannerIsVisible)
{
[UIView beginAnimations:@"animateAdBannerOn" context:NULL];
// banner is invisible now and moved out of the screen on 50 px
if (banner == adView1)
{
banner.frame = CGRectOffset(banner.frame, 0, 50);
}
if (banner == adView2)
{
banner.frame = CGRectOffset(banner.frame, 0, 200);
}
[UIView commitAnimations];
self.bannerIsVisible = YES;
}
}
(void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)错误 { if(self.bannerIsVisible) { [UIView beginAnimations:@“animateAdBannerOff”context:NULL]; //横幅是可见的,由于连接问题,我们将其移出屏幕 banner.frame = CGRectOffset(banner.frame,0,-50); [UIView commitAnimations]; self.bannerIsVisible = NO; } }
答案 0 :(得分:1)
adView1.frame = CGRectOffset(adView2.frame, 0, 50);
必须是CGRectOffset(adView1.frame,0,50);因为adView2只在下一行分配???
答案 1 :(得分:0)
创建第一个视图时,您正在使用第二个视图的框架:
adView1 = [[ADBannerView alloc] initWithAdType:ADAdTypeBanner];
adView1.frame = CGRectOffset(adView2.frame, 0, 50);
adView1.delegate = self;
[self.backgroundView addSubview:adView1];
由于尚未创建adView2,因此它为零且帧为(0,0,0,0) 您必须像第二个视图一样使用adView1框架进行偏移。
此外,请记住,显示2个横幅是违反Apple指南的,不推荐。看看这里(最佳实践部分) https://developer.apple.com/library/ios/documentation/userexperience/conceptual/iAd_Guide/WorkingwithBannerViews/WorkingwithBannerViews.html