Gibt es eine Möglichkeit, den Farbton einer Registerkartenleiste unter iOS 7 vom Standardweiß mit blauen Symbolen in einen anderen Farbton mit verschiedenen Farbtasten zu ändern?
Gibt es eine Möglichkeit, den Farbton einer Registerkartenleiste unter iOS 7 vom Standardweiß mit blauen Symbolen in einen anderen Farbton mit verschiedenen Farbtasten zu ändern?
Antworten:
Versuchen Sie Folgendes:
[[UITabBar appearance] setTintColor:[UIColor redColor]];
[[UITabBar appearance] setBarTintColor:[UIColor yellowColor]];
Um die nicht aktiven Tasten zu tönen, geben Sie den folgenden Code in Ihre VCs ein viewDidLoad:
UITabBarItem *tabBarItem = [yourTabBarController.tabBar.items objectAtIndex:0];
UIImage *unselectedImage = [UIImage imageNamed:@"icon-unselected"];
UIImage *selectedImage = [UIImage imageNamed:@"icon-selected"];
[tabBarItem setImage: [unselectedImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];
[tabBarItem setSelectedImage: selectedImage];
Sie müssen dies für alle tabBarItems tun, und ja, ich weiß, dass es hässlich ist und hoffe, dass es einen saubereren Weg gibt, dies zu tun.
Schnell:
UITabBar.appearance().tintColor = UIColor.red
tabBarItem.image = UIImage(named: "unselected")?.withRenderingMode(.alwaysOriginal)
tabBarItem.selectedImage = UIImage(named: "selected")?.withRenderingMode(.alwaysOriginal)
Es gibt einen viel einfacheren Weg, dies zu tun.
Öffnen Sie einfach den Dateiinspektor und wählen Sie einen "globalen Farbton".
Sie können die Farbfarbe einer App auch im Interface Builder festlegen. Über das Menü "Globaler Farbton" im Abschnitt "Interface Builder-Dokument" des Dateiinspektors können Sie das Fenster "Farben" öffnen oder eine bestimmte Farbe auswählen.
Siehe auch:
iOS 7.1.1
Wenn jemand eine global eingestellte Farbtonfarbe verwenden muss:
[[UIView appearance] setTintColor:[UIColor whiteColor]];
In didFinishLaunchingWithOptionsvon AppDelegate.
Der folgende Code ändert bei jeder viewDidLoadMethode nur die Farbe der Registerkartenleiste :
[self.tabBarController.tabBar setTintColor:[UIColor redColor]];
Im App-Delegaten didFinishLaunchingWithOptions:
window.tintColor = [UIColor purpleColor];
Legt die Farbtonfarbe global für die App fest.
Was bei mir endlich funktioniert hat war:
[self.tabBar setTintColor:[UIColor redColor]];
[self.tabBar setBarTintColor:[UIColor yellowColor]];
Stellen Sie im " Attributes Inspector " Ihres Registerkartenleisten-Controllers im Interface Builder sicher, dass Ihre untere Leiste auf "Undurchsichtige Registerkartenleiste" eingestellt ist:
Gehen Sie jetzt zu Ihrer AppDelegate.m- Datei. Finden:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
Fügen Sie dann diesen Code zwischen die geschweiften Klammern ein, um die Farben der Schaltflächen der Registerkartenleiste und des Hintergrunds der Registerkartenleiste zu ändern:
///----------------SET TAB BAR COLOR------------------------//
//--------------FOR TAB BAR BUTTON COLOR---------------//
[[UITabBar appearance] setTintColor:[UIColor greenColor]];
//-------------FOR TAB BAR BACKGROUND COLOR------------//
[[UITabBar appearance] setBarTintColor:[UIColor whiteColor]];
Nachdem ich alle vorgeschlagenen Lösungen ausprobiert hatte, konnte ich keine sehr hilfreichen finden.
Ich habe endlich folgendes versucht:
[self.tabBar setTintColor:[UIColor orangeColor]];
das hat perfekt geklappt.
Ich habe nur ein Bild für jedes TabBarItem bereitgestellt. Ich brauchte nicht einmal ein ausgewähltes Bild.
Ich habe es sogar in den Child-ViewControllern verwendet, um verschiedene TintColors festzulegen:
UIColor *theColorYouWish = ...;
if ([[self.parentViewController class] isSubclassOfClass:[UITabBarController class]]){
UITabBarController *tbc = (UITabBarController *) self.parentViewController;
[tbc.tabBar setTintColor:theColorYouWish];
}
Sie können Ihre Farbtonfarbe und Schriftart als setTitleTextattribute festlegen:
UIFont *font= (kUIScreenHeight>KipadHeight)?[UIFont boldSystemFontOfSize:32.0f]:[UIFont boldSystemFontOfSize:16.0f];
NSDictionary *attributes = [NSDictionary dictionaryWithObjectsAndKeys:font, NSFontAttributeName,
tintColorLight, NSForegroundColorAttributeName, nil];
[[UINavigationBar appearance] setTitleTextAttributes:attributes];