Использование tabBarItem.setTitleTextAttributes
изменить цвет текста отдельных элементов стержневых.
Поместите это в viewDidLoad
методе каждой вкладки:
self.tabBarItem.setTitleTextAttributes([NSForegroundColorAttributeName: UIColor.red()], for:.selected)
Чтобы изменить значок и текст оттенок цвета вместе простое решение, чтобы изменить цвет TabBar оттенок в методе viewWillAppear каждой вкладки:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.tabBarController?.tabBar.tintColor = UIColor.red()
}
Другим решением для изменения цвета оттенка изображения является создание расширения для UIImage и использование его для изменения выбранного изображения с помощью пользовательский Оттенок:
extension UIImage {
func tabBarImageWithCustomTint(tintColor: UIColor) -> UIImage {
UIGraphicsBeginImageContextWithOptions(self.size, false, self.scale)
let context: CGContext = UIGraphicsGetCurrentContext()!
context.translate(x: 0, y: self.size.height)
context.scale(x: 1.0, y: -1.0)
context.setBlendMode(CGBlendMode.normal)
let rect: CGRect = CGRect(x: 0, y: 0, width: self.size.width, height: self.size.height)
context.clipToMask(rect, mask: self.cgImage!)
tintColor.setFill()
context.fill(rect)
var newImage: UIImage = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext()
newImage = newImage.withRenderingMode(UIImageRenderingMode.alwaysOriginal)
return newImage
}
}
Используйте этот код, чтобы изменить выбранное изображение:
self.tabBarItem.selectedImage = self.tabBarItem.selectedImage?.tabBarImageWithCustomTint(tintColor: UIColor.red())
Пробовал в Xcode 8 стремительных 3, работает отлично , Вы задаете цвет оттенка для панели вкладок или одного из элементов панели? –
Спасибо за ответ! Я пытаюсь установить цвет отдельных элементов. Я просто прикрепил скриншот. – winston