2012-04-05 5 views
0

У меня есть настройка AdMob в моем ViewController, и она расположена внизу. Все хорошо, пока я не скрою навигационную панель. Рамка AdMob увеличивается, когда моя панель навигации скрыта. Как я могу заставить его придерживаться нижней части моего представления? Вот что у меня естьпозиция AdMob снизу, когда панель навигации скрыта

-(void)navBarTransition:(BOOL)hide 
    { 
     [[self navigationController] setNavigationBarHidden:hide animated:YES]; 

     //addjust frame height when ads is visible 
     if(hide) 
     { 
     CGRect frame = CGRectMake(0.0,self.view.frame.size.height + GAD_SIZE_320x50.height,GAD_SIZE_320x50.width, GAD_SIZE_320x50.height); 

     [bannerView_ setFrame:frame]; 
     } 
    } 
+0

проверить ваш фрейм Координатор у – Hiren

+0

CGRect кадра = CGRectMake (0,0 , self.view.frame.size.height - GbannerView.frame.size.height, GAD_SIZE_320x50.width, GAD_SIZE_320x50.height); – priyanka

+0

@ CocoaMatters Matters. Я продолжаю получать 0 в качестве точки Y для bannerView_. @ приянка. Я пробовал это раньше, но он также не работал. bannerView по-прежнему не будет придерживаться дна. – Diffy

ответ

0

Перед тем, как спрятать навигационную панель, переместите начало координат вниз по высоте. Также убедитесь, что у вас нет масок автозапуска (гибкие верхние/нижние поля?), Мешающие вашему позиционированию.

CGRect bFrame = bannerView_.frame; 
CGFloat newY = bFrame.origin.y + self.navigationController.navigationBar.frame.size.height; 
bFrame.origin.y = newY; 
[bannerView_ setFrame:bFrame]; 

Если это не работает, вы можете попробовать использовать CJPAdController (Раскрытие информации: Я написал этот класс). При реализации этого класса, вы можете просто настроить свой код на следующем (только тестирование, и оказались, работать, как вы хотели бы его):

[[self navigationController] setNavigationBarHidden:hide animated:YES]; 
if(hide) 
    [CJPAdController sharedManager] fixAdViewAfterRotation]; 
Смежные вопросы