2016-07-18 24 views
0

Wie im Thema, frage ich mich, ob jetzt in React Native eine Option zum Ändern der Farbe des inaktiven TabBar-Symbols von Standard-Graustufen auf benutzerdefinierte Farbe? Mit oder ohne react-native-vector-iconsIst es möglich, in Reactive Native die Farbe des inaktiven TabBarIOS Icons zu ändern?

+0

Warum nicht für sich selbst ausprobieren und sehen? –

+0

Ich habe versucht, aber ich kann keine Lösung finden, ich versuchte mit Styling, mit der Quelle des Symbols von reagieren-native-Vektor-Icons mit eigener Farbe, aber es hat nicht funktioniert, graue Farbe überschrieb meine benutzerdefinierte Farbe. Also habe ich beschlossen zu fragen. – enterteg

Antwort

0

Ich fand Lösung, aber Ihr Symbol sollte in "inaktive" Farbe sein. Um das zu erreichen gehen, dies zu RTCTabBarItem.m und erster Zeile in der Methode ändern 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; 
} 

Dann in all TabBarIOS.Item Feld hinzufügen selectedIcon mit der gleichen URL wie in icon (das ist egal), setzte tintColor von TabBarIOS auf „aktiv "Farbe und das ist alles! Die Tableiste wird mit der Standardfarbe des Symbols (inaktiv) gerendert, und das aktive Symbol wird in tintColor angezeigt. Ich denke, dass TabBar-Feld renderAsOriginal sollte dies tun, aber es funktioniert nicht. Schließlich fand ich diese Lösung auf Github https://github.com/facebook/react-native/issues/3083


Eine andere Lösung (in einigen Fällen nicht funktioniert):

  1. in xCode find Datei RCTTabBar.m (cmd + shift + f)
  2. finden - (instancetype)initWithFrame:(CGRect)frame
  3. hinzufügen vor return self:
 
[[UIView appearanceWhenContainedIn: [UITabBar class], nil] setTintColor: [UIColor redColor]]; 
[[UITabBar appearance] setSelectedImageTintColor: [UIColor greenColor]]; 
  1. Restart Simulator/Geräte

In Code redColor ist Farbe von inaktiven Tasten und greenColor ist die Farbe der aktiven Taste. Weitere Details Kasse dieses Unselected UITabBar color?

Edit: Ich großes Werkzeug gefunden, wenn Sie konvertieren möchten RGB zu UIColor http://uicolor.xyz/