In UITabBarItem class docs:
By default, the actual unselected and selected images are automatically created from the alpha values โโin the original images. To prevent system staining, provide images using UIImageRenderingModeAlwaysOriginal.
The tooltip does not use UIImageRenderingModeAlwaysOriginal , it is important when to use it.
To prevent gray color for unselected items, you just need to prevent the system from coloring for the unselected image. Here's how to do it:
var firstViewController:UIViewController = UIViewController()
As you can see, I asked iOS to apply the original color (white, yellow, red, any) of the image ONLY for the UNSELECTED state and leave the image as it is for the SELECTED state.
In addition, you may need to add a hue color for the tab bar to apply a different color for the SELECTED state (instead of the default iOS blue color). As shown in the screenshot above, you apply white color to the selected state:
self.tabBar.tintColor = UIColor.whiteColor()
source share