2011-04-24 56 views
0

我在我的应用中定位一些内容(在本例中为Admob广告)时遇到了一个奇怪的问题。我的观点是标准UITableViewControllers,我想定位广告,以便将它们固定在视图的底部(尽管在工具栏上方)。iOS视图定位问题

以下是我用来放置广告的代码(这是Admob SDK所需的代理方法)。

- (void)didReceiveAd:(AdMobView *)adView { 
    // get the view frame 
    //CGRect frame = self.navigationController.view.frame; 
    CGRect frame = self.view.superview.frame; 

    // put the ad at the bottom of the screen 
    adMobAd.frame = CGRectMake(0, frame.size.height - 48, frame.size.width, 48); 

    [self.view.superview addSubview:adMobAd]; 
} 

此代码工作正常最初放置的广告,以及广告出现在哪里,我希望它在屏幕的底部。不过,在某些用户互动后,有时广告会跳到屏幕中间。

例如,当用户选择并在tableview中输入并且下一个控制器被加载到导航控制器堆栈上时。当用户返回到广告所在的初始表格控制器时,广告现在将位于屏幕中间而不是底部。

或者,如果用户选择了一个弹出新的modalViewController的按钮,那么当modalViewController被解除时将发生同样的事情。

我是否将广告锚定在错误的地方?视图加载时是否需要始终重新定位广告?我错过了什么?

回答

0

如果您尝试使用CGRect frame = self.view.frame;来代替,该怎么办?

你隐藏了你的navigationController吗?这可能会导致它也向上移动

+0

不,我没有手动隐藏导航控制器。只需通过presentModalViewController方法。另外,如果我将它锚定到self.view.frame,它会将它锚定到tableview,而不是导致滚动问题的主UIView,因为我希望它始终锁定在可见“视口”的底部, – cpjolicoeur 2011-04-25 13:16:29