我在我的應用中定位一些內容(在本例中爲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