57
votes

I am trying to get desired color rendered in the background of Tab Bar however I am facing problems. These are the things that I tried :-

  1. Changing the background color of tab bar object from storyboard. The color rendered is always lighter than the desired color.

  2. Programmatically changing the color of the tab bar using the following code inside viewDidLoad() method

        self.tabBar.translucent = false
        self.tabBar.backgroundColor = UIColor(hexString: "323B61")
    

    It doesn't change the color. Instead , the color rendered is white.

How can I get the desired color for Tab Bar?

6

6 Answers

85
votes

To change background colour of UITabBar

TabBarController* Tcontroller =(TabBarController*)self.window.rootViewController;
Tcontroller.tabBar.barTintColor=[UIColor yourcolour];

Swift 3

Based on the code above, you can get it by doing this

let Tcontroller = self.window.rootViewController as? UITabBarController
Tcontroller?.tabBar.barTintColor = UIColor.black // your color

or in more general

UITabBar.appearance().barTintColor = UIColor.black // your color
44
votes

We can also do it from Storyboard

1) Select the Tab Bar first:

enter image description here

2) Then from the Attribute Inspector choose Bar Tint colour as shown in the below image:

enter image description here

That's it!

24
votes

swift 4

Inside your UITabBarController

tabBar.barTintColor = .purple
tabBar.isTranslucent = false

You also have access to:

tabBar.tintColor = .green
tabBar.unselectedItemTintColor = .blue

to change icon colours if you want.

13
votes

try this code

self.tabBarController.tabBar.barTintColor =  [UIColor colorWithRed:0.376 green:0.729 blue:0.318 alpha:1.000];
2
votes

Swift 4, in viewDidLoad of TabBarController

    self.tabBar.tintColor = UIColor.white // tab bar icon tint color
    self.tabBar.isTranslucent = false
    UITabBar.appearance().barTintColor = UIColor.blue // tab bar background color
0
votes

swift 5

self.tabBarController.tabBar.backgroundColor = .white