Можно ли изменить неактивный цвет значка TabBarIOS в React Native?

colors icons react-native native tabbar

466 просмотра

1 ответ

21 Репутация автора

Как и в теме, мне интересно, если прямо сейчас в React Native есть возможность изменить цвет неактивного значка TabBar с серого по умолчанию на пользовательский цвет? С использованием или без использования response-native-vector-icons

Автор: enterteg Источник Размещён: 18.07.2016 09:59

Ответы (1)


0 плюса

953 Репутация автора

Я нашел решение, но ваша иконка должна быть "неактивного" цвета. Для этого перейдите RTCTabBarItem.mи измените первую строку в методе setIcon:

- (void)setIcon:(UIImage *)icon
{
  _icon = [icon imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
  if (_icon && _systemIcon != NSNotFound) {
    _systemIcon = NSNotFound;
    UITabBarItem *oldItem = _barItem;
    _barItem = [UITabBarItem new];
    _barItem.title = oldItem.title;
    _barItem.imageInsets = oldItem.imageInsets;
    _barItem.selectedImage = oldItem.selectedImage;
    _barItem.badgeValue = oldItem.badgeValue;
  }
  self.barItem.image = _icon;
}

Затем во все TabBarIOS.Item добавьте поле selectedIconс тем же URL-адресом, что и в icon(неважно), установите tintColorTabBarIOS в «активный» цвет, и все! TabBar будет отображаться с цветом значка по умолчанию (неактивным), а активный значок будет в tintColor. Я думаю, что поле TabBar renderAsOriginalдолжно сделать это, но это не работает. В конце концов я нашел это решение на github https://github.com/facebook/react-native/issues/3083


Другое решение (может не работать в некоторых случаях):

  1. в xCode найти файл RCTTabBar.m( cmd+ shift+ f)
  2. находить - (instancetype)initWithFrame:(CGRect)frame
  3. добавить перед return self:
[[UIView creationWhenContainedIn: [UITabBar class], nil] setTintColor: [UIColor redColor]];
[[UITabBar появление] setSelectedImageTintColor: [UIColor greenColor]];
  1. Перезапустите Симулятор / Устройство

В коде redColor- цвет неактивных кнопок и greenColorцвет активной кнопки. Для более подробной информации проверьте этот невыбранный цвет UITabBar?

Изменить: Я нашел отличный инструмент, если вы хотите конвертировать RGB в UIColor http://uicolor.xyz/

Автор: jonzee Размещён: 21.09.2016 05:20
Вопросы из категории :
32x32