как установить UIBarButtonItem выбранный или выделенный цвет изображения или оттенка в iOS 7?

Как обеспечить нормальное состояние и выбранные / выделенные изображения состояния для uibarbuttonitem в iOS 7? Есть ли способ предоставить цвет оттенка как для обычного, так и для выбранного / выделенного состояния uibarbuttonitem?

Я не хочу использовать uibutton как представление для uibarbuttonitem! Любое изящное решение было бы высоко оценено.

Вы можете использовать UIButton как customView для UIBarButtonItem и иметь два разных фоновых изображения для normal и selected состояния UIButton. Затем, когда кнопка нажата, вы можете просто установить selected состояние на YES или NO .

 // Build right bar button UIImage *normalButtonImage = [UIImage imageNamed:@"normal-button"]; UIImage *selectedButtonImage = [UIImage imageNamed:@"selected-button"]; CGRect rightButtonFrame = CGRectMake(0, 0, normalButtonImage.size.width, normalButtonImage.size.height); UIButton *rightButton = [[UIButton alloc] initWithFrame:rightButtonFrame]; [rightButton setBackgroundImage:normalButtonImage forState:UIControlStateNormal]; [rightButton setBackgroundImage:selectedButtonImage forState:UIControlStateSelected]; [rightButton addTarget:self action:@selector(rightBarButtonPress) forControlEvents:UIControlEventTouchDown]; [orientationButton setShowsTouchWhenHighlighted:YES]; [orientationButton setSelected:NO]; UIBarButtonItem *rightBarButton = [[UIBarButtonItem alloc] initWithCustomView:rightButton]; [self.navigationItem setRightBarButtonItem:rightBarButton]; 

Затем ваш метод, когда нажата кнопка, измените состояние

 - (void)rightBarButtonPress { //toggle selected state of button UIBarButtonItem *rightBarButton = self.navigationItem.rightBarButtonItem; UIButton *button = (UIButton *)rightBarButton.customView; [button setSelected:!button.selected]; //do whatever else you gotta do } 

Вы можете сделать это, используя ссылку на протокол UIAppearance Protocol

 NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:[UIColor redColor], UITextAttributeTextColor, [UIColor clearColor], UITextAttributeTextShadowColor, nil]; [[UIBarButtonItem appearance] setTitleTextAttributes:options forState:UIControlStateNormal]; 

Возможно, вам также придется использовать:

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

Согласно этому ответу , я сделал что-то дополнительное и вроде бы для вас ответ. У меня есть свой пользовательский UITabBarController, который связан с моим UITabBarController в файле StoryBoard. Поэтому, чтобы удалить автоматический оттенок, предоставленный iOS, когда TabBar не выбран, я в конечном итоге удалил его таким образом. Изображения могут быть огромным разнообразием изображений, но точно так, как это рекомендуется здесь . Вот оно:

 NSArray *navConArr = self.viewControllers;//self is custom UITabBarController UINavigationController *naviOne = [navConArr objectAtIndex:0];//I have 3 different tabs, objectAtIndex:0 means the first tab navigation controller UITabBarItem *naviBtn = naviOne.tabBarItem; UIImage *image = [[UIImage imageNamed:@"iconNaviOne"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; [naviBtn setSelectedImage:image]; [naviBtn setImage:image]; 

Поэтому, перемещаясь с этой вкладки на другую и оставляя ее в невыбранном (сером по умолчанию) оттенке, вы можете установить его на предоставленное изображение. К счастью, это работает как шарм (:

  • Отображение значка уведомления, такого как счетчик в UINavigationbar
  • Изменяет ли название кнопки предупреждение о дальнейших действиях?
  • Программно нажмите кнопку со стрелкой?
  • При изменении заголовка UIBarButtonItem переход вяло / мерцает
  • Как добавить MKUserTrackingBarButtonItem в Интерфейс Builder
  • titleTextAttributes шрифт UIAppearance в iOS 7
  • Кнопка панели навигации Элемент «Создать» сдвигается вправо во время segue
  • Настроить атрибуты заголовка конкретной кнопки возврата
  • Действие UIBarButtonItem не вызывается, когда в представлении с UIGestureRecognizer
  • Как изменить цвет фона UIBarButtonItem на iOS 7+?
  • Как оживить изменение кнопки в UINavigationBar?
  • Interesting Posts

    Установите кадр SKShapeNode для вычисления AccumutedFrame

    Ошибка установки pod с ошибкой: Библиотека (из `../`) `требуется` Подфайл`, когда pod install в iOS

    Ошибка CodeSign: требуется подписание кода для типа продукта «Приложение» в SDK «iOS 6.0»

    Может ли другое приложение зарегистрировать мою собственную схему URL?

    Как настроить UICollectionView с вкладкой на дополнительном представлении и переключением другого контента?

    Коснитесь ID: Биометрия заблокирована. Код = -8

    Можно ли изменить высоту строк-заполнителей в UITableView без создания фиктивной строки?

    Расширения iOS 8 не отображаются в диалоговом окне «Общий диалог»

    Отображение Smart Banner в iOS 6 Компонент UIWebview

    быстрый компилятор показывает ошибку ожидаемого объявления?

    iOS8 – внешний вид аксессуаров клавиатуры с динамической высотой

    Найти словарный ключ внутри и массив словарей

    Чувствительность / скорость прокрутки UIScrollView с подкачкой

    Android-подобный навигационный ящик для iOS?

    Сравните RGB двух изображений в IOS

    Давайте будем гением компьютера.