Значок UIBarButtonItem, белый при добавлении через IB, черный при добавлении программно

Когда я добавляю значок к a UIBarButtonItem через Интерфейсного Разработчика значок отображен белый. Когда я добавляю тот же файл значка программно к другому UIToolbar, значок отображен черный. Почему?

UIImage *image = [UIImage imageNamed:@"icon.png"];
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setImage:image forState:UIControlStateNormal];
rootViewController.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithCustomView:reloadButton] autorelease];
7
задан tobiasbayer 7 August 2010 в 20:36
поделиться

2 ответа

Все, что сказал Jongsma, правильно, нужно использовать сообщение initWithImage:style:.

Следующая проблема заключается не в том, как вы создаете UIBarButtonItem, а в том, куда вы его назначаете. Вы создаете его с помощью UIBarButtonItemStylePlain, который, как правило, должен отображать контур иконки белым цветом, но правому ButtonItem UINavigationItem (как и левому) не разрешен UIBarButtonItemStylePlain. Он неявно преобразуется в UIBarButtonItemStyleBordered. В стиле bordered иконка отображается "как есть", то есть черной с небольшим градиентом.

Я думаю, если вы хотите, чтобы элемент был белым в bordered barButton, вам придется коснуться самого изображения.

6
ответ дан 6 December 2019 в 21:08
поделиться

В коде вы устанавливаете UIButton в качестве подпредставления UIBarButtonItem. UIBarButtonItem уже является кнопкой, поэтому вам не следует добавлять еще одну кнопку в качестве подпредставления.

Попробуйте следующее:

UIImage *image = [UIImage imageNamed:@"icon.png"];
rootViewController.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithImage:image] autorelease];
0
ответ дан 6 December 2019 в 21:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: