2011-04-24 79 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