От UITabBarItem
класса Docs:
По умолчанию фактические невыбранные и выбранные изображения автоматически создаются из альфа-значений в исходных изображениях. To предотвращает окраску системы, предоставляет изображения UIImageRenderingModeAlwaysOriginal.
Ключ не в том, используете ли вы UIImageRenderingModeAlwaysOriginal
, что важно, когда его использовать.
Чтобы предотвратить серый цвет для невыделенных элементов, вам просто нужно предотвратить окраску системы для невыделенного изображения. Вот как это сделать:
var firstViewController:UIViewController = UIViewController()
// The following statement is what you need
var customTabBarItem:UITabBarItem = UITabBarItem(title: nil, image: UIImage(named: "YOUR_IMAGE_NAME")?.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal), selectedImage: UIImage(named: "YOUR_IMAGE_NAME"))
firstViewController.tabBarItem = customTabBarItem
Как вы можете видеть, я попросил IOS применить оригинальный цвет (белый, желтый, красный, любой другие) изображений только для невыбранного состояния и оставить изображение это для состояния SELECTED.
Кроме того, вам может потребоваться добавить цвет оттенка для панели вкладок, чтобы применить другой цвет для состояния SELECTED (вместо голубого цвета iOS по умолчанию). В соответствии с вашим скриншотом выше вы применяете белый цвет для выбранного состояния:
self.tabBar.tintColor = UIColor.whiteColor()