我在我的应用中定位一些内容(在本例中为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
被解除时将发生同样的事情。
我是否将广告锚定在错误的地方?视图加载时是否需要始终重新定位广告?我错过了什么?
不,我没有手动隐藏导航控制器。只需通过presentModalViewController方法。另外,如果我将它锚定到self.view.frame,它会将它锚定到tableview,而不是导致滚动问题的主UIView,因为我希望它始终锁定在可见“视口”的底部, – cpjolicoeur 2011-04-25 13:16:29