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 回答