2014-09-07 2 views
0

Я интегрирую iAds в первый раз. Оно работает. То, что я не могу сделать, это получить его внизу на моем экране. Когда я делаю то, что, по моему мнению, является правильной математикой, он перестает показывать (или, скорее, я его не вижу), но меняет положение на твердое значение.iAd позиция баннера и высота экрана

// Use RootViewController manage CCEAGLView 
_viewController = [[RootViewController alloc] initWithNibName:nil bundle:nil]; 
_viewController.wantsFullScreenLayout = YES; 
_viewController.view = eaglView; 

// Set RootViewController to window 
if ([[UIDevice currentDevice].systemVersion floatValue] < 6.0) 
{ 
    // warning: addSubView doesn't work on iOS6 
    [window addSubview: _viewController.view]; 
} 
else 
{ 
    // use this method on ios6 
    [window setRootViewController:_viewController]; 
} 

// iAd 
adView = [[ADBannerView alloc] initWithFrame:CGRectZero]; 
CGRect adFrame = adView.frame; 

adFrame.origin.y = adView.frame.size.height; 
adView.frame = adFrame; 
[_viewController.view addSubview:adView]; 

работает, но он показывает, как это: enter image description here

Когда я пытаюсь изменить положение в нижней части на основе высоты экрана - высота AdView я перестану видеть.

adFrame.origin.y = _viewController.view.frame.size.height - adView.frame.size.height; 

Я поставил точки останова и, кажется, что это должно работать на основании значений для высоты (1024) и AdView (66)

enter image description here

UPDATE: Я сейчас пытаюсь init с указанием прямой

adView = [[ADBannerView alloc] initWithFrame:CGRectMake(0, [[UIScreen mainScreen] bounds].size.height - adView.frame.size.height, [[UIScreen mainScreen] bounds].size.width, adView.frame.size.height)]; 
[adView setDelegate:self]; 
[_viewController.view addSubview:adView]; 

Все еще не работает, больше ничего не отображается.

UPDATE 2: Попытка это он делает шоу, очевидно, не в нижнем

adView = [[ADBannerView alloc] initWithFrame:CGRectMake(0, 200, [[UIScreen mainScreen] bounds].size.width, 200)]; 

UPDATE 3: Попытка это, это делает шоу, очевидно, не в нижнем

adView = [[ADBannerView alloc] initWithFrame:CGRectMake(0, 200, [[UIScreen mainScreen] bounds].size.width, [[UIScreen mainScreen] bounds].size.height)]; 

UPDATE 4: Попытка этого, работает, и это внизу, но я только что сделал это. Изменяя 300 до 200, тогда ничего не отображается.

adView = [[ADBannerView alloc] initWithFrame:CGRectMake(0, [[UIScreen mainScreen] bounds].size.height - 300, [[UIScreen mainScreen] bounds].size.width, [[UIScreen mainScreen] bounds].size.height)]; 

ответ

0

Почему бы не использовать initWithFrame непосредственно при создании представления баннера?

Я делаю это, как показано ниже в моем приложении, и она отлично работает для меня

CGFloat adBannerHeight = 100.0f; 

bannerView = [[ADBannerView alloc]initWithFrame:CGRectMake(0, [[UIScreen mainScreen] bounds].size.height - adBannerHeight,[[UIScreen mainScreen] bounds].size.width,adBannerHeight)]; 
[bannerView setDelegate:self]; 
[[self view] addSubview:bannerView]; 

Также, пожалуйста, убедитесь, что вы реализуете все необходимые методы делегата

+0

Спасибо. Я пробовал и не показывал. Можете ли вы посмотреть мое обновление выше? – Jason

+0

Я не вижу ничего плохого в вашем коде. Вы можете проверить свою иерархию просмотров? Возможно, ваш баннер просматривается каким-то другим видом. – slysid

+0

adView = [[ADBannerView alloc] initWithFrame: CGRectMake (0, [[UIScreen mainScreen]) .size.height - adView.frame.size.height, [[UIScreen mainScreen]) .size.width, adView.frame. size.height)]; В вашем коде adView.frame.size.height будет равен нулю, поскольку adView все еще не сгенерирован. Таким образом, представление рекламного баннера устанавливается ниже границ UIWindow. Установите его на какое-то твердое значение, например, 100 или 150. – slysid

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