Изменить цвет UINavigationItem - PullRequest
       1

Изменить цвет UINavigationItem

5 голосов
/ 06 сентября 2011

Мне нужно установить пользовательские цвета для кнопок UINavigationBar.Я делаю следующее (функция RGB - это определение):

- (void)viewWillAppear:(BOOL)animated
{

for (UIView *view in self.navigationController.navigationBar.subviews)      
    if ([[[view class] description] isEqualToString:@"UINavigationButton"])
        [(UINavigationButton *)view setTintColor:RGB(22.0,38.0,111.0)];

 }

Все выглядит нормально при загрузке приложения.после выхода из вида и возврата цвет возвращается к значению по умолчанию.

Во-вторых, мне нужно установить тот же цвет для UISegmentedControl для нажатой кнопки.

Ответы [ 3 ]

1 голос
/ 06 сентября 2011

[Изменить цвет UINavigationItem] (http://www.skylarcantu.com/blog/2009/11/05/changing-colors-of-uinavigationbarbuttons/"Changing цвета UINavigationBarButtons ") и для установки того же цвета на UISegmentControl поможет вам добраться до пункта назначения.

Здесь - это пример кода для установки цвета в UISegmentControl.

0 голосов
/ 01 декабря 2011

Для IOS5 придется использовать "setBackgroundImage: forBarMetrics:"

попробуйте этот код, чтобы применить все UINavigationItem / UINavigationBar

 if([[UINavigationBar class] respondsToSelector:@selector(appearance)]){ //iOS >=5.0
    //use for UINavigationBar Custom image.
    [[UINavigationBar appearance] setBackgroundImage:[UIImage imageWithNamed:@"navImage.png"] forBarMetrics:UIBarMetricsDefault];

    //use for UINavigationItem custom color
    [[UINavigationBar appearance] setTintColor:[UIColor greenColor]];
}
0 голосов
/ 06 сентября 2011

Вот один из способов:

[[theNavigationBar.subviews objectAtIndex:1] setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
[[theNavigationBar.subviews objectAtIndex:2] setTitleColor:[UIColor redColor] forState:UIControlStateNormal];

Однако ОГРОМНО, будьте осторожны.С большой вероятностью это может сломаться в будущих выпусках ОС и не рекомендуется.

По крайней мере, вам следует выполнить большое тестирование и убедиться, что ваши предположения о макете подпредставления панели навигации верны.или Вы можете изменить цвет, изменив свойство tintColor UINavigationBar

myBar.tintColor = [UIColor greenColor];

или Вы можете перейти по ссылке ниже http://www.skylarcantu.com/blog/2009/11/05/changing-colors-of-uinavigationbarbuttons/

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