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?
Antwort
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):
- in xCode find Datei
RCTTabBar.m
(cmd
+shift
+f
) - finden
- (instancetype)initWithFrame:(CGRect)frame
- hinzufügen vor
return self
:
[[UIView appearanceWhenContainedIn: [UITabBar class], nil] setTintColor: [UIColor redColor]]; [[UITabBar appearance] setSelectedImageTintColor: [UIColor greenColor]];
- 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/
Warum nicht für sich selbst ausprobieren und sehen? –
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