iOS не может правильно изменить изображение UIBarButtonItem - PullRequest
2 голосов
/ 26 декабря 2011

У меня проблема при попытке изменить пользовательский значок кнопки «Назад» на UINavigationBar. Для достижения этой цели я использую следующий код:

- (void)viewDidLoad {
    [super viewDidLoad];
    UIBarButtonItem* leftBtn;
    UIImage* botonVolverImg = [UIImage imageNamed:@"boton_volver.png"]; 

    leftBtn = self.navigationItem.leftBarButtonItem;
    leftBtn.image = botonVolverImg;
}

Но когда появляется вид, вы видите это:

занятой кот http://www.timotteo.com.ar/boton.png

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

Я изменил свойство imageInsets , но, похоже, это не работает. Я также читал форум вокруг, но не смог найти точное решение.

Любые предложения приветствуются!

Ответы [ 2 ]

3 голосов
/ 26 декабря 2011

Свойство image для UIBarButtonItem не соответствует фоновому изображению, а только изображению, которое обеспечивает дополнительный контекст.Если вы нацеливаетесь на 5.0+, лучше всего использовать -setBackButtonBackgroundImage:forState:barMetrics:, чтобы установить фон для элемента панели кнопок.

2 голосов
/ 26 декабря 2011

В дополнение к ответу Марка, если ваш клиент требует от вас поддержки iOS 4, вы можете создать UIButton, который будет выглядеть именно так, как этого хочет ваш клиент (т. Е. Только это изображение), а затем использовать UIBarButton ' s initWithCustomView метод, чтобы создать собственную кнопку назад. Затем вы можете запустить эту кнопку popViewController или выполнить любое необходимое действие.

...