我正在使用以下代码设置可以展示横幅广告的VC
[self setCanDisplayBannerAds:YES];
我遇到的问题是我想在我的应用程序的最底部显示文本,除非出现横幅广告,在这种情况下我会将文本放在横幅上。我似乎找不到使用setCanDisplayBannerAds调用的委托方法或任何其他方法来实现这一点。我在这里错过了一些简单的东西吗?
答案 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]];