2014-01-20 5 views
0

Я программно добавил bannerView в свое приложение. На iOS7 4 "и 3.5" он отлично работает, однако на iOS6 он перемещает баннер на 20 пикселей, очевидно, из-за строки состояния, но я хочу, чтобы баннер всегда соответствовал нижней части экрана, а не уменьшался на 20 пикселейПрограммно установить баннер, чтобы исправить в нижней части экрана

Мой код выглядит так:

[bannerView_ loadRequest:[GADRequest request]]; 


    [bannerView_ setFrame:CGRectMake([UIScreen mainScreen].bounds.size.width-bannerView_.frame.size.width, 
            [UIScreen mainScreen].bounds.size.height-bannerView_.frame.size.height, 
            bannerView_.frame.size.width, 
            bannerView_.frame.size.height 
            )]; 

есть ли способ изменить программно дельт или что-то? В основном баннер должен переместить 20px вверх на iOS6

ответ

1

UIApplication выставил statusBarFrame. Это даст вам высоту строки состояния (обычно, 20 баллов). Затем вы можете проверить, имеет ли пользователь iOS6 и смещает баннер. Проверьте, сравнивая NSFoundationVersionNumber <= NSFoundationVersionNumber_iOS_6_1.

Try:

[bannerView_ setFrame:CGRectMake([UIScreen mainScreen].bounds.size.width - bannerView_.frame.size.width, [UIScreen mainScreen].bounds.size.height - bannerView_.frame.size.height - (NSFoundationVersionNumber <= NSFoundationVersionNumber_iOS_6_1 ? [UIApplication sharedApplication].statusBarFrame.size.height : 0), bannerView_.frame.size.width, bannerView_.frame.size.height)]; 

Имейте в виду, если вы хотите, чтобы поддерживать вращение, ваша задача будет получить сложнее, как вы должны были бы поместить вид после поворота, и вы должны были бы использовать statusBarFrame.width в пейзаже.

+0

Благодаря Лео, но то, что код, который я хотел бы использовать, чтобы установить высоту? Im довольно новичок, так что если вы можете помочь с кодом, который будет оценен. – Omar

+0

@ Omar см. Редактирование. –

+0

Спасибо, человек, который работал очень хорошо !!! – Omar

0

Если вы можете использовать автоматический макет, вы должны просто сказать, что вид баннера имеет нижнее выравнивание, равное его выравниванию нижнего уровня. На языке Visual Format, который будет «V: [bannerView_] |». Не забудьте добавить ограничения для ширины, высоты и горизонтальной позиции, если вы примете этот подход.

Если вы не можете использовать автоматическую компоновку, вам придется вычесть высоту строки состояния из начала вашего баннера.

Вы можете получить высоту строки состояния [[UIApplication sharedApplication] statusBarFrame] .size.height

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