2 模拟器上的 iAd

Posted

技术标签:

【中文标题】2 模拟器上的 iAd【英文标题】:2 iAds on simulator 【发布时间】:2014-05-06 13:40:31 【问题描述】:

我正在尝试创建 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 *)error 如果(self.bannerIsVisible) [UIView beginAnimations:@"animateAdbannerOff" context:NULL]; // 由于连接问题,横幅可见,我们将其移出屏幕 banner.frame = CGRectOffset(banner.frame, 0, -50); [UIView 提交动画]; self.bannerIsVisible = 否;

(BOOL)bannerViewActionShouldBegin:(ADBannerView *)banner willLeaveApplication:(BOOL)willLeave NSLog(@"横幅视图正在开始一个广告操作"); 布尔应该执行动作 = 是; if (!willLeave && shouldExecuteAction) [音频暂停]; 返回应该执行动作; (void)bannerViewActionDidFinish:(ADBannerView *)banner [音频简历];

【问题讨论】:

【参考方案1】:
adView1.frame = CGRectOffset(adView2.frame, 0, 50);

必须是CGRectOffset(adView1.frame, 0, 50);因为 adView2 只分配在下一行???

【讨论】:

【参考方案2】:

当您创建第一个视图时,您使用的是第二个视图的框架:

adView1 = [[ADBannerView alloc] initWithAdType:ADAdTypeBanner]; 
adView1.frame = CGRectOffset(adView2.frame, 0, 50);
adView1.delegate = self;
[self.backgroundView addSubview:adView1];

由于 adView2 尚未创建 - 它是 nil 并且 frame 是 (0,0,0,0) 您必须像第二个视图一样使用 adView1 框架进行偏移。

另外,请记住,显示 2 个横幅违反了 Apple 准则,不建议这样做。看看这里(最佳实践部分) https://developer.apple.com/library/ios/documentation/userexperience/conceptual/iAd_Guide/WorkingwithBannerViews/WorkingwithBannerViews.html

【讨论】:

是的,我已经修好了,但第一个 bunner 仍然没有 iAd,只是 rect。如果我想使用 4 个横幅并作为背景(无需用户交互) - 它会被拒绝吗? Apple 的审批政策中没有这样的限制,您的应用不应被拒绝,但它可能会引起对您的应用程序的额外关注,并且版主可以对 iAd 提出一些问题。所以这是一个风险

以上是关于2 模拟器上的 iAd的主要内容,如果未能解决你的问题,请参考以下文章

iAd 在模拟器上工作但在设备上崩溃(ipad)

iAd 冻结 Sprite Kit 应用

iAd 横幅显示在模拟器上,但不显示在设备上

iAd 显示在模拟器中,但不在设备上

iAd 在模拟器和设备中不起作用

测试 iAd 在模拟器、iPhone 设备而不是 iPad 设备上显示