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

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

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

3 Solutions collect form web for “как установить UIBarButtonItem выбранный или выделенный цвет изображения или оттенка в iOS 7?”

Вы можете использовать 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 к нескольким UIViewControllers
  • Как удалить все заголовок кнопки навигации
  • IOS Custom UIBarbuttonItem изменяет позицию в подробном представлении
  • Fade UIBarButtonItem при смене
  • Как поместить значок на пользовательский UIBarButtonItem
  • Изменение цвета кнопки «Назад» на панели навигации
  • IOS custom UINavigationItem leftBarButtonItem hotspots range слишком большой
  • UITabbar в Xcode 6
  • UIBarButton не будет отображаться в виде таблицы в контроллере табуляции
  • Пользовательский «Прессованный» фон UIBarButtonItem
  • Кнопка «Отмена» вместо кнопки «Назад» в «Контроллере навигации»
  • Interesting Posts

    Что означает initImageAppleJPEG: возврат к предупреждающим сообщениям libJPEG означает?

    iOS для Mac OS X передача данных Bluetooth

    Как JSON сериализовать словарь NSDate в JSONKit

    Показать MKMapView в UITableViewCell без замедления интерфейса

    UIWebView – белый фон перед загрузкой содержимого

    Я хочу обновить свое универсальное приложение только для iPad только в itunes connect. Но при отправке двоичных файлов я получаю следующую ошибку

    Время запуска компонента UIWebView?

    Создание настольного приложения для Mac, Windows или iOS с использованием C # или VB в Visual Studio

    Местоположение GPS на iOS и Android

    NSMutableAttributedString – NSShadow без границы

    Обновление исходной темы CoreData имеет случайный EXC_BAD_ACCESS KERN_INVALID_ADDRESS Ошибка

    Сохранение и вызов пользовательских соглашений с помощью NSUserDefaults

    CloudKit Fetching CKReferences, лучшая практика?

    Диалоговое окно Facebook в iOS

    Привязка MonoTouch не может использовать поля

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.