Центрирование логотипа в ландшафте в UINavigationBar на iPad - PullRequest
3 голосов
/ 13 февраля 2012

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

if ([UINavigationBar respondsToSelector:@selector(appearance)]) {
    [[UINavigationBar appearance] setBackgroundImage: [UIImage imageNamed:@"titlebar_landscape.png"] forBarMetrics:UIBarMetricsLandscapePhone];
    [[UINavigationBar appearance] setBackgroundImage: [UIImage imageNamed:@"titlebar.png"] forBarMetrics:UIBarMetricsDefault];  
    [[UINavigationBar appearance] setBackgroundColor: [UIColor redColor]];
}

Изображение - это логотип приложения, центрированный на градиентном фоне, который соответственно изменен по размеру для ландшафта. Я сделал то же самое для моей версии приложения для iPad, однако пейзажное изображение не работает, потому что для iPad нет специальной опции для Пейзаж, как для iPhone UIBarMetricsLandscapePhone.

Итак, мой вопрос заключается в том, как добиться того же эффекта на моем iPad, когда логотип моих приложений центрируется на градиентном фоне в альбомном режиме в iOS5?

Ответы [ 2 ]

1 голос
/ 14 февраля 2012

iPad использует одни и те же столбчатые метрики независимо от ориентации, поэтому вам нужно только установить образ UIBarMetricsDefault. Ландшафтный показатель iPhone обусловлен тем, что в ландшафтном режиме система использует несколько более короткую панель навигации на iPhone. Все остальные панели навигации имеют больший размер, включая любую панель навигации, отображаемую на iPad.

1 голос
/ 13 февраля 2012

Вот хороший урок, который может помочь вам в правильном направлении.http://iosdevelopertips.com/user-interface/ios-5-customize-uinavigationbar-and-uibarbuttonitem-with-appearance-api.html

...