Изменение цвета навигационной кнопки BackController - PullRequest
1 голос
/ 20 января 2012

Я хочу изменить цвет кнопки BackButton контроллера навигации с помощью градиента. Я изменил цвет navatonBar, но не смог изменить цвет backButton. Если я использую self.navigationController.navigationBar.tintColor Цвет как bar, так и backButton изменен, но я хочу применить градиент, как я сделал для navigationBar

CGRect navFrame = self.navigationController.navigationBar.frame;
navFrame.origin.y = 0.0f;
[self.navigationController.navigationBar.layer insertSublayer:[AddGradient addGradientToNavigationBar:navFrame] atIndex:0];

код для addGradientToNavigationBar равен

+ (CAGradientLayer*)addGradientToNavigationBar:(CGRect)navRect {

    CAGradientLayer *gradient = [CAGradientLayer layer];
    gradient.frame = navRect;
    gradient.colors = [NSArray arrayWithObjects:(id)[[UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:1.0] CGColor],
                       (id)[[XAppDelegate getColor] CGColor], nil];
    return gradient;
}

Любая помощь будет оценена.

Ответы [ 2 ]

1 голос
/ 20 августа 2012

Реализуйте эту строку кода:

[[UIBarButtonItem appearance] setTintColor:[UIColor redColor]];

Замените redColor на следующее, чтобы настроить цвет кнопок:

colorWithRed:0/255.0 green:144/255.0 blue:200/255.0 alpha:1.0// pick your color using this

Убедитесь, что поместили это в контроллер вида, которыйвыталкивает.Не тот контроллер вида, где вы хотите видеть этот цвет кнопки возврата.

0 голосов
/ 20 января 2012

Если цвет вашей панели и кнопки не должен изменяться динамически, я думаю, что лучший способ - использовать протокол iOS 5 UIAppearance .Создайте масштабируемое изображение (т.е. с частью, которая может повторяться iOS столько раз, сколько необходимо) и выполните что-то вроде этого:

[[UINavigationBar appearance] setBackgroundImage: [UIImage imageNamed:@"BarGradient.png"]
                                   forBarMetrics: UIBarMetricsDefault];

[[UIBarButtonItem appearance] setBackgroundImage: [[UIImage imageNamed:@"BarButtonScalableGradient.png"]
                     resizableImageWithCapInsets: UIEdgeInsetsMake(15, 6, 15, 6)]
                                        forState: UIControlStateNormal
                                      barMetrics: UIBarMetricsDefault];

Помогает ли это?

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