隐藏导航栏时将AdMob置于底部

时间:2012-04-05 06:35:12

标签: iphone objective-c ios admob

我在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];
       }
     }

1 个答案:

答案 0 :(得分: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];