1

プロジェクトに iAd を追加しようとしています。iAd しようとしているビュー コントローラーには、UIWebView が含まれています。UIToolBar も下部に追加されます。ツールバーの上で、ADBannerView を StoryBoard 内にドラッグしました。これは次のようになります。

iOS IAD 統合

広告を表示するために、これまでに行ったことは次のとおりです。 iAd フレームワークを追加し、「banner」という名前の AdBannerView から IBOutLet を作成し、viewDidLoad でデリゲートを自分自身に割り当てました。次に、AdBannerViewDelegate メソッドを追加し、次のメソッドも追加しました。

- (void) viewDidLayoutSubviews {
    if (self.banner.bannerLoaded) {
        CGRect contentFrame = self.view.bounds;
        CGRect bannerFrame = self.banner.frame;
        contentFrame.size.height -= self.banner.frame.size.height;
        bannerFrame.origin.y = contentFrame.size.height;
        self.banner.frame = bannerFrame;
    }
}

さて、私が行った上記のすべてで iAd が適切に表示されています。

問題:ビューを初めてロードすると、広告が適切に表示されますが、ビューを再度アンロードして再ロードすると、UIToolBar が消え、UIToolBar の代わりに下に移動した AdBannerView で覆われます。問題がどこにあり、それを解決する方法を誰かが指摘できますか? ありがとう。

4

2 に答える 2

3

あなたの問題は、viewDidLayoutSubviews メソッドでフレームを設定することが原因です。自動レイアウトを使用する場合は、フレームを設定しないでください。ストーリーボードでは、addBannerView を追加するときに、高さの制約、ビューの両側への間隔の制約、およびツールバーへの垂直方向の間隔の制約を与えます (Web ビューには、上部への垂直方向の間隔の制約も必要です)。バナー ビューの追加)。viewDidLayoutSubviews メソッドを削除すると、正しく機能するはずです。

于 2013-11-16T01:00:20.020 に答える