iAd View与自定义ViewController

时间:2011-10-25 15:27:03

标签: ios view iad viewcontroller adbannerview

我尝试将iAd集成到我的应用程序中。

我有一个类SwitchViewController(:UIViewController)来处理所有的 自定义ViewControllers&我在这个应用程序中的观点。

在最高atIndex处添加如下视图时,出现错误:

ADBannerView: WARNING A banner view has an ad but may be obscured

但是,如果我不插入所有其他子视图 - iAd工作正常。我能看到它,但是 当然所有其他观点都已消失。

任何想法?

通过以下方式添加子视图:

ADBannerView *tmpBannerView = [[ADBannerView alloc] initWithFrame:CGRectZero];
self.adView_iPad = tmpBannerView;
self.adView_iPad.frame = CGRectMake(0, 0, self.adView_iPad.frame.size.width, self.adView_iPad.frame.size.height);
self.adView_iPad.requiredContentSizeIdentifiers = [NSSet setWithObject:ADBannerContentSizeIdentifierPortrait];
self.adView_iPad.currentContentSizeIdentifier = ADBannerContentSizeIdentifierPortrait;
self.adView_iPad.delegate = self;
[self.view insertSubview:self.adView_iPad atIndex:100];

1 个答案:

答案 0 :(得分:0)

您始终希望确保ADBannerView是层次结构中最顶层的视图,以避免出现此警告。如果任何视图与其重叠,即使它具有透明度,您也会收到此警告。

你可以简单地做这样的事情。

ADBannerView *adView = <create the view>;
[superView addSubview:adView];
[superView bringSubviewToFront:adView];

更新:

设置视图大小时,最好查询类的大小。

+ (CGSize)sizeFromBannerContentSizeIdentifier:(NSString *)contentSizeIdentifier

这将返回您应该使用的高度和宽度。所以设置框架如下:

CGSize size = [ADBannerView sizeFromBannerContentSizeIdentifier: ADBannerContentSizeIdentifierPortrait];
self.adView_iPad.frame = CGRectMake(0, 0, size.width, size.height);