0

ViewControllerにAdMobを設定しましたが、下部に配置されています。ナビゲーションバーを非表示にするまでは、すべて問題ありません。ナビゲーションバーを非表示にすると、AdMobフレームが上がります。ビューの下部に貼り付けるにはどうすればよいですか?これが私が持っているものです

    -(void)navBarTransition:(BOOL)hide
     {
       [[self navigationController] setNavigationBarHidden:hide animated:YES];

       //addjust frame height when ads is visible
       if(hide)
       {
       CGRect frame = CGRectMake(0.0,self.view.frame.size.height + GAD_SIZE_320x50.height,GAD_SIZE_320x50.width, GAD_SIZE_320x50.height);

       [bannerView_ setFrame:frame];
       }
     }
4

1 に答える 1

0

ナビゲーション バーを非表示にする直前に、origin.y をその高さだけ下に移動します。また、配置に干渉する自動サイズ変更マスク (柔軟な上部/下部マージン?) がないことを確認してください。

CGRect bFrame = bannerView_.frame;
CGFloat newY = bFrame.origin.y + self.navigationController.navigationBar.frame.size.height;
bFrame.origin.y = newY;
[bannerView_ setFrame:bFrame];

これが機能しない場合は、CJPAdControllerを使用してみてください(開示: このクラスを作成しました)。このクラスを実装する場合は、コードを次のように調整するだけです (テストしたところ、希望どおりに動作するように見えました)。

[[self navigationController] setNavigationBarHidden:hide animated:YES];
if(hide)
    [CJPAdController sharedManager] fixAdViewAfterRotation];
于 2012-04-12T01:01:50.720 に答える