Настройка кнопки панели Цвет элемента в пользовательской панели навигации - PullRequest
2 голосов
/ 23 декабря 2010

Я создал пользовательскую панель навигации и правую кнопку навигации, используя XIB. Это отлично работает. Но мне нужно настроить цвет оттенка правой кнопки навигации. На данный момент этот цвет оттенка совпадает с цветом оттенка навигационной панели. Мне нужен другой цвет для этой правой кнопки. Есть ли способ изменить этот цвет?

Спасибо.

Ответы [ 4 ]

15 голосов
/ 01 мая 2012

В iOS 5 есть функция «появления»:

[[UIBarButtonItem appearance] setTintColor:YOUR_COLOR];

5 голосов
/ 23 декабря 2010

Насколько мне известно, кнопка наследует оттенок цвета панели навигации. Что вы можете сделать, это установить настраиваемое представление для навигационного элемента:

Вот как вы устанавливаете его с помощью одной из кнопок SDK:

UIBarButtonItem *shareButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:self action:@selector(shareButtonHandler:)];

[self.navigationItem setRightBarButtonItem:shareButton];
[shareButton release];

Вместо этого вы можете сделать это так:

UIBarButtonItem *btn = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"yourImage.png" style:UIBarButtonItemStyleBordered target:self action:@selector(customButtonHandler:)]];

Чтобы использовать изображение, которое вы сделали в фотошопе и т. Д.

Есть также initWithCustomView:UIView или initWithTitle:NSString, которые вы можете использовать.

Извините, нет "однострочного решения":)

1 голос
/ 02 февраля 2017

Свифт 3.х

UIBarButtonItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName : Color.primaryActionColor], for: .normal)
0 голосов
/ 12 апреля 2019

Если у вас есть элемент кнопки панели навигации с пользовательским представлением, вы должны сначала преобразовать в UIButton :

navigationItem.rightBarButtonItem?.customView as? UIButton

Затем вы можете добавить атрибуты UIButton , такие каккак:

button.setTitleColor(UIColor.black.withAlphaComponent(0.1), for: .normal)
...