1

アプリに iAd を統合しようとしています。

このアプリにあるすべてのカスタム ViewControllers とビューを処理するクラス SwitchViewController (: UIViewController) があります。

以下のようにビューを最高の 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];
4

1 に答える 1

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);
于 2011-10-25T15:31:14.610 に答える