Как установить фон панели навигации в ios5 (Retina)? - PullRequest
1 голос
/ 28 марта 2012

Я использую этот код для установки фона. Это действительно меняет фон, но есть некоторые проблемы с Retina.

[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"navi_bar.png"] forBarMetrics:UIBarMetricsDefault];

У меня есть два png: navi_bar.png (320 * 44) и navi_bar@2x.png (640 * 88)

Фон панели навигации всегда использует изображение navi_bar.png, даже в Retina.

Если я использую этот код:

[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"navi_bar@2x.png"] forBarMetrics:UIBarMetricsDefault];

Результат в Retina: enter image description here

Фон имеет двойную высоту ...

Я потратил все утро на эту проблему. Кто-нибудь может мне помочь? Спасибо!

Ответы [ 5 ]

3 голосов
/ 28 марта 2012

Попробуйте это

  UINavigationBar *navBarName = [[self navigationController] navigationBar];
    UIImage *backgroundImg = [UIImage imageNamed:@"navi_bar"];
    [navBarName setBackgroundImage:backgroundImg forBarMetrics:UIBarMetricsDefault];
1 голос
/ 01 января 2013

У меня была та же проблема: NavBarBg.png применяется для устройства с сетчаткой, хотя NavBarBg@2x.png доступен.Но, похоже, это связано только с симулятором.Когда я запускаю приложение на устройстве, NavBarBg@2x.png применяется правильно.

1 голос
/ 28 марта 2012

Вам не нужно писать @"navi_bar@2x.png".iOS автоматически подберет правильное изображение для отображения сетчатки.Просто используйте @"navi_bar.png".

РЕДАКТИРОВАТЬ- Этот ТАК вопрос поможет

0 голосов
/ 28 марта 2012

Это странно, вы должны проверить, правильно ли вы добавили 2x изображение или нет

0 голосов
/ 28 марта 2012

Вы можете использовать: [[UINavigationBar appearance] setBackgroundImage:aImg forBarMetrics:UIBarMetricsDefault];

в iOS 5

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