Как изменить цвет фона панели навигации без переопределения drawRect: - PullRequest
2 голосов
/ 01 августа 2011

Я пытаюсь найти способ установить другой цвет фона для другой панели навигации в моем приложении (у меня есть несколько представлений с панелью навигации каждый). Я не собираюсь переопределять drawRect: поскольку это применимо ко всему приложению. Кроме того, использование свойства tintcolor не помогает, поскольку оно применяется только к элементам панели навигации.

self.navigationController.navigationBar.tintColor = [UIColor greenColor];

Я уже несколько дней гуглю и не могу найти правильного решения этой проблемы. почему так просто так сложно? не понимаю, почему это не свойство uinavbar ...

кто-то, пожалуйста, помогите с простым решением ... спасибо!

Ответы [ 5 ]

6 голосов
/ 01 августа 2011
#import <QuartzCore/QuartzCore.h>

self.navigationController.navigationBar.layer.contents = (id)[UIImage imageNamed:@"navigationBarBackgroundImage"].CGImage;

self.navigationController.navigationBar.tintColor = [UIColor orangeColor];

как вы жаловались, пока нет свойств содержимого. вам нужно импортировать кварцевую раму

1 голос
/ 11 августа 2013
self.navigationController.navigationBar.backgroundColor = [UIColor greenColor];
self.navigationController.navigationBar.tintColor = [UIColor greenColor];

работает на меня, очень простой способ.

1 голос
/ 01 августа 2011

что происходит, когда вы говорите self.navBar setTintColor: [UIColor greenColor]]; в viewDidLoad eachView. где navBar объявлен как IBOutlet UINavigationBar, связанный с панелью навигации в конструкторе интерфейса

1 голос
/ 01 августа 2011

подкласс UINavigationBar и перезаписать drawRect, затем использовать подкласс только в тех местах, где вы хотите другой цвет. (и у вас может быть метод, который позволяет передавать цвет при инициализации подкласса или что-то еще, если вы хотите много разных цветов).

0 голосов
/ 15 июня 2012

Код у вас правильный.Вы должны поместить его туда, где вы создаете навигационный контроллер.

...