UINavigationBar background color not the exact UIColor I set it to
Please look at the screenshot below.
I set all the tint colors from the same UIColor object for the UINavigationBar, search bar and toolbar at the bottom. But for some reason the navigationbar color is slightly different. What could be the reason for this?
Thanks..
Solution 1:
The difference between your navigation bar and search bar is because the navigation bar is translucent,the system will apply a default alpha value for the navigation bar.
Try self.navigationController.navigationBar.translucent = NO;
Solution 2:
UINavigationBar
has a bit of a strange behavior when it comes to the color you set on it. As other members have pointed out, you do have to set the translucent
boolean to false
, but this isn't all to get your bar to match the color you are trying to set. It will be close, but if you look carefully it will not be the exact color you are trying to use. In order to set the true color on UINavigationBar
you need to understand what it is doing.
Let's say that I wanted to set my UINavigationBar
to this cool color green.
That would be an RGB value of: R=90 | G=200 | B=95.
What UINavigationBar
will do is apply it's built-in styling by giving this green a "glossy" look. The result for us is that it is taking our green RGB values and upping each by a factor of 20.
If you look close the green square above does not exactly match the one UINavigationBar
is displaying with the same RGB values. This looks just slightly brighter.
To fix this, simply reduce the RBG values by 20 for the color you intend to use for the UINavigationBar
's in your application.
So R=90 | G=200 | B=95 will become R=70 | G=180 | B=75.