UINavigationController: анимация изменения цвета панели - PullRequest
0 голосов
/ 07 февраля 2012

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

Я могу программно изменить базовый UINavigationBar UINavigationController в одной из нескольких точек (из корневого представления, когда собирается выдвинуть новое представление, из viewDidLoad, viewWillAppear или viewDidAppear нового представления), но все эти результатыв баре цвет меняется мгновенно.Что мне остается, так это полоса, которая мигает новым цветом либо до, либо после анимации нажатия.

Что меня интересует, так это то, что есть способ сделать этот вид чище.В идеале, я бы хотел, чтобы новый цвет панели вставлялся вместе с новым видом, как если бы у представления, которое я нажимаю, был свой собственный UINavigationBar, добавленный вручную вверху, отдельно от такового для панели UINavigationController.

1 Ответ

0 голосов
/ 07 февраля 2012

Вы можете достичь того, что ищете, расширив UINavigationBar до своего пользовательского класса, а затем переопределив метод -(void)drawRect:(CGRect)rect и реализовав там обновление цвета.Не забудьте позвонить setNeedsDisplay.

Удачи.

...