UIBarButtonItem выделен серым цветом - PullRequest
1 голос
/ 19 января 2012

Я добавляю два UIBarButtonItems к UINavigationBar. Первым из них является системный элемент - кнопка поиска - и он прекрасно работает. Второе - это пользовательское изображение (маленькая белая иконка Glyphish), но когда я добавляю это, изображение становится серым. Кнопка отлично нажимается, просто серая. У кого-нибудь есть идея, почему это может происходить?

enter image description here

Я верю, что альфа-уровни верны. Если я помещаю тот же значок в UIBarButtonItem на UIToolbar (а не UINavigationBar), это выглядит так:

enter image description here

Ответы [ 5 ]

2 голосов
/ 19 января 2012

Затем попробуйте очистить цель.

Shift + cmd + K

0 голосов
/ 10 января 2018

Попробуйте нажать кнопку перезагрузки.

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if([sender isKindOfClass:UIBarButtonItem.class]) {
        UIBarButtonItem *button = sender;
        self.navigationItem.rightBarButtonItem = nil;
        self.navigationItem.rightBarButtonItem = button;
    }
}
0 голосов
/ 19 января 2012

Вы используете изображение значка типа панели инструментов.Значки Glyphish на панелях инструментов и вкладках используют только альфа-слои.Но если вы создаете кнопку, вы должны использовать стандартное изображение.Откройте изображение в любом редакторе изображений и используйте цвета, которые вы хотите для своей кнопки, и прозрачные значения для альфа-слоя, где вы хотите.Это, в некотором смысле, обратное к изображениям, сделанным из альфа-слоев в панелях вкладок.

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

Ранее я использовал серый значок.Когда я понял, что это неправильный цвет, я добавил суффикс к файлу «-грей» и ввел белый значок, который взял название серого значка.Но каким-то образом Xcode все еще извлекал старую иконку, несмотря на то, что ее имя было изменено в проекте (и, следовательно, в Finder).Может быть, кешируется?Для меня это загадка!

Спасибо за ваш вклад всем.

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

Похоже, оно в подсвеченном состоянии? Если вы создаете эту кнопку программно, вы можете проверить, является ли она UIControlState == UIControlStateHighlighted

...