iOS 视图定位错误
Posted
技术标签:
【中文标题】iOS 视图定位错误【英文标题】:iOS view positioning bug 【发布时间】:2011-04-24 00:07:07 【问题描述】:在我的应用中定位某些内容(在本例中为 Admob 广告)时遇到了一个奇怪的问题。我的视图是标准的UITableViewControllers
,我希望将广告定位到视图的最底部(不过在工具栏上方)。
这是我用来放置广告的代码(这是 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 中选择并输入时,下一个控制器被加载到导航控制器堆栈中。当用户导航回广告所在的初始 tableview 控制器时,广告现在将位于屏幕中间而不是底部。
或者如果用户选择一个弹出新modalViewController
的按钮,当modalViewController
被关闭时也会发生同样的事情。
我是否将广告定位到了错误的位置?加载视图时是否需要始终重新定位广告?我错过了什么?
【问题讨论】:
【参考方案1】:如果你改用CGRect frame = self.view.frame;
会怎样。
您是否隐藏了您的导航控制器?这也可能导致它向上移动
【讨论】:
不,我没有手动隐藏导航控制器。只需通过 presentModalViewController 方法。此外,如果我将它锚定到 self.view.frame 它将它锚定到 tableview 而不是导致滚动问题的主 UIView 因为我希望它始终被锁定到可见“视口”的底部以上是关于iOS 视图定位错误的主要内容,如果未能解决你的问题,请参考以下文章
UITableView 部分索引在 iOS 7 中定位错误的单元格,顶行隐藏在导航栏下
为啥只有当我覆盖它时,我的 UINavigtionController 栏才会在 iOS 7 上错误地定位? [复制]