iAd Banner通知?

时间:2014-12-02 00:22:32

标签: ios iad

我正在使用以下代码设置可以展示横幅广告的VC

[self setCanDisplayBannerAds:YES];

我遇到的问题是我想在我的应用程序的最底部显示文本,除非出现横幅广告,在这种情况下我会将文本放在横幅上。我似乎找不到使用setCanDisplayBannerAds调用的委托方法或任何其他方法来实现这一点。我在这里错过了一些简单的东西吗?

2 个答案:

答案 0 :(得分:0)

iAD Banner有两种委托方法,通知其观察者是否可以显示iAD横幅。这些委托方法是:

#import <UIKit/UIKit.h>
#import <iAd/iAd.h>

@interface ViewController : UIViewController<ADBannerViewDelegate>
 - (void)bannerViewDidLoadAd:(ADBannerView *)banner
{
    if (!_bannerIsVisible)
    {
        _bannerIsVisible = YES;
    }
}

- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error
{
    _bannerIsVisible = NO;
}
@end

使用帮助_bannerIsVisible bool变量,您可以决定何时显示文本。

答案 1 :(得分:0)

我找到了答案。

当您在视图控制器上设置canDisplayBannerAds:YES时,Apple会控制self.view并将您的视图移动到self.originalContentView。因此,如果要将其与视图底部对齐,只需使用originalContentView添加约束。

当横幅显示并隐藏时,Apple会调整originalContentView的尺寸,这将导致重新布局布局。

以下代码会在没有广告时将viewYouWantOnTheBottom与视图底部对齐,并在广告显示时将其正确放置在横幅顶部。

我希望这有助于某人。

[self.originalContentView addConstraint:[NSLayoutConstraint constraintWithItem:viewYouWantOnTheBottom attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.originalContentView attribute:NSLayoutAttributeBottom multiplier:1.0 constant:0]];