2015-06-11 3 views
1

Я пытаюсь настроить свое рекламное объявление Admob между всеми различными размерами экрана iPhone, предлагаемыми Apple, но я не могу понять, как заставить его автоматически настраиваться или используя другой код.Рамка смены баннера Admob для разных размеров экрана

В моей viewdidload

bannerView_ = [[GADBannerView alloc] initWithFrame:CGRectMake(0, 430, 320, 50)]; 
bannerView_.adUnitID = @""; 
bannerView_.rootViewController = self; 
[self.view addSubview:bannerView_]; 
[bannerView_ loadRequest:[GADRequest request]]; 
GADRequest *request = [GADRequest request]; 
request.testDevices = [NSArray arrayWithObjects:@"", nil ]; 

ответ

2

Вам необходимо установить размер adSize установленного размера баннера Google kGADAdSizeBanner. Затем вы устанавливаете GADBannerViewframe относительно view. Следующий код помещает GADBannerView в нижней части вашего view.

admobBannerView.adSize = kGADAdSizeBanner; 
admobBannerView.frame = CGRectMake(0, self.view.frame.size.height - admobBannerView.frame.size.height , self.view.frame.size.width, admobBannerView.frame.size.height); 
  • x - Набор для возникновения 0
  • y - Установка начала координат до высоты view «s. Но это будет отображаться в нижней части экрана. Таким образом, мы должны вычесть высоту из наших GADBannerView, чтобы переместить его вверх на экран: self.view.frame.size.height - admobBannerView.frame.size.height
  • width - Установите его в ширине view: self.view.frame.size.width
  • height - Установите его на высоту нашего GADBannerView: admobBannerView.frame.size.height

Banner Ad Customization

0

Поскольку вы создаете баннер программно вместо с раскадровки, я хотел бы проверить, чтобы выяснить, что высота экрана. Я использую следующий код, чтобы определить, на каком телефоне кто-то включен.

CGFloat greaterPixelDimension = (CGFloat) fmaxf(((float)[[UIScreen mainScreen]bounds].size.height), ((float)[[UIScreen mainScreen]bounds].size.width)); 

Я бы тогда создать bannerview в коде, как это:

if (greaterPixelDimension == 736) { //6 plus 
    bannerView_ = [[GADBannerView alloc] initWithFrame:CGRectMake(0, ###, 4--, 50)]; 
} 
else if (greaterPixelDimension == 667){ // 6 
    bannerView_ = [[GADBannerView alloc] initWithFrame:CGRectMake(0, ###, 3--, 50)]; 
} 
else if(greaterPixelDimension == 568){ // 5 
    bannerView_ = [[GADBannerView alloc] initWithFrame:CGRectMake(0, 430, 320, 50)]; 
} 

и т.п. (очевидно, заменить ### и 3-- с соответствующими точками, я забываю число Офф- в верхней части головы)

+0

Это старый способ делать вещи и работал хорошо, когда вы только имели два размеры экрана, чтобы беспокоиться о. Но, имея все доступные сейчас устройства, и еще много других, этот список будет только расти и постоянно обновляться. –

+1

Хорошая точка Даниэль, кажется глупым, что я бы динамически получал высоту экрана, а затем жестко кодировал ширину. Это то, что происходит, когда вы берете код, который хочет дифференцировать разрешения изображения и изменять его. Спасибо что подметил это! – dstudeba

Смежные вопросы