Lasang
Lasang

Reputation: 1379

how to change tabBar icon color in ios

My current tab bar looks as follows:

enter image description here

My code is as follows:

-(void)startTabBar{
     self.tabBarController = [[UITabBarController alloc] init];
     TAB_1  *tab_1 = [[TAB_1 alloc]init];
     TAB_2  *tab_2 = [[TAB_2 alloc]init];
     TAB_3  *tab_3 = [[TAB_3 alloc]init];

    [[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary  dictionaryWithObjectsAndKeys: [UIColor blackColor], NSForegroundColorAttributeName, nil] forState:UIControlStateNormal];
   [[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor redColor], NSForegroundColorAttributeName,nil] forState:UIControlStateSelected];

    NSArray* controllers = [NSArray arrayWithObjects:tab_1,tab_2, tab_3, nil];

   self.tabBarController.viewControllers = controllers;
   self.window.rootViewController = self.tabBarController;
}

What i want to do is:

Normal tab: title of tab should be black as it is but only icon image should be black. Expected tab should be like :

enter image description here

Selected tab: title of tab should be red as it is but only icon image should be red. Expected tab should be like :

enter image description here

tab bar color : make the whole tabBar color more transparent with same color

Can anyone help to do this?

Upvotes: 7

Views: 21619

Answers (3)

mikeho
mikeho

Reputation: 7000

The answers here aren't quite what I was looking for. It makes sense if you want a generic change to the color of all tab bar controllers in your app, but realistically, you don't necessarily want to make such a global change (not to mention that it can be difficult to debug and find later). It's better to be more focused, so you want to change the color directly.

As of iOS 8, you need to change the tintColor property of the tab bar. Hopefully, you're subclassing your UITabBarController. If you are, you can set the color in viewDidLoad:

- (void)viewDidLoad {
    [super viewDidLoad];

    self.tabBar.tintColor = [UIColor grayColor];
}

Upvotes: 2

Rags93
Rags93

Reputation: 1474

In Swift on iOS8 it would be:

UITabBar.appearance().tintColor = UIColor.redColor()

Upvotes: 7

michaelsnowden
michaelsnowden

Reputation: 6192

This accomplishes what you're asking for:

[[UITabBar appearance] setSelectedImageTintColor:[UIColor redColor]];
[[UITabBar appearance] setAlpha:0.25];

Upvotes: 22

Related Questions