как установить 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]; 

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

  • Как скрыть элемент кнопки панели для определенных пользователей
  • Настройка UIBarButtonItem не меняет название, меняя только стиль
  • Использование UIAppearance с подклассом UIBarButtonItem приводит к тому, что непризнанный селектор отправляется в UINavigationButton
  • Добавление элементов в UIToolbar программно не работает
  • Пытаясь программно добавить кнопку в UINavigationController, но она никогда не появляется
  • - игнорирует вертикальное смещение
  • Добавить пользовательский селектор в UIBarButtonItem
  • IOS Custom UIBarbuttonItem изменяет позицию в подробном представлении
  • Как сделать UIBarButtonItem следующим образом
  • Обновление UIImage на UiBarButtonItem от идентификатора к изображению
  • Как добавить кнопки на панель инструментов в iPad popover?
  • Interesting Posts

    Как рассчитать расстояние от местоположения пользователя до аннотации, когда пользователь перемещается

    UIDynamicAnimator Встряска с пружинным эффектом

    ExtAudioFileWrite для m4a / aac, не работающих на двухъядерных устройствах (ipad 2, iphone 4s)

    API UI, вызванный из фонового потока в Swift 4 и запускающий Firebase 4

    Лучший способ переключить View Controller в iOS

    – устарела, что перечисление дает такое же поведение, как и раньше?

    Как получить доступ к переменным контроллера просмотра из делегата приложения … и наоборот?

    Загрузите приложение в AppStore после закрытия отпуска

    Live Stream с использованием файлов .m3u8 и .ts с iPhone в качестве сервера

    Символизирующий сбой аварийной ситуации iOS: символы не найдены

    Ошибка Mach-O при интеграции Flurry Xcode

    Push-уведомление не получено, когда приложение находится в фоновом режиме в iOS 10

    Ошибка отображения симулятора iPhone при повторной установке приложения из Xcode

    Как я должен понимать «Сохранить для развертывания разработки» в приложении Xcode для iOS?

    AngularJS на WKWebView: любое решение для обработки файла: // на iOS 9?

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