kiedyś zastąpić metoda drawRect i kolor wypełnienia; ale po aktualizacji do iOS7 powoduje pewne problemy na UINavigationBar. Jeśli napiszesz własną, poprawną metodę, nawet jeśli wywołasz [super drawRect], zmieni ona wymiar pręta i otrzymasz pasek nawigacji o wysokości 44 pikseli. Pasek stanu pozostaje pusty.
Aby uzyskać solidne kolorową navigationBar użyłem obraz jako obraz tła (dowolny mały stałe kolorowy obraz będzie zrobić, ponieważ jesteś rozciąganie) i dodano ten linie wewnątrz metody initWithFrame podklasy UINavigationBar:
[self setBackgroundColor:[UIColor clearColor]]
[[UINavigationBar appearance] setBackgroundImage:[[UIImage imageNamed:@"bgimage.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(5, 5, 5, 5) resizingMode:UIImageResizingModeStretch] forBarMetrics:UIBarMetricsDefault];
Dzięki. Działa jak marzenie. Aby ustawić kolory przycisków, zmieniłem kolor tinty paska nawigacji i otrzymam kolor tinty. Tak jak się spodziewałem. – MartinHN
Czy wiesz, czy można to zrobić za pośrednictwem proxy wygląd? '[[UINavigationBar appearance] .....];' – MartinHN
Nie wiem, używam tego kodu w projekcie z iOS 4.2, gdy wygląd był niedostępny –