更改单个标签栏图标的 unselectedItemTintColor
Change unselectedItemTintColor for single tab bar icon
我有一个 UITabBarController
的子类,其中包含 5 个项目。
第5项为用户头像
final class HomeSceneViewController: UITabBarController {
init(tabs: [UIViewController]) {
super.init(nibName: nil, bundle: nil)
viewControllers = tabs
configureUI()
}
required init?(coder: NSCoder) {
return nil
}
}
private extension HomeSceneViewController {
func configureUI() {
view.backgroundColor = .white
tabBar.unselectedItemTintColor = .red
tabBar.tintColor = .blue
}
}
目前,每个视图控制器使用 tabBarItem = UITabBarItem(title: nil, image: tab.iconOff, selectedImage: tab.iconOn)
设置它自己的 tabBarItem
属性,但 unselectedItemTintColor
正在我不想要的头像上设置覆盖因为它应该按原样显示头像。
是否可以在每个选项卡的基础上设置 unselectedItemTintColor
?
尝试像这样为图像提供 renderingMode(.alwaysOriginal):
tabBarItem = UITabBarItem(title: nil,
image: tab.iconOff?.withRenderingMode(.alwaysOriginal),
selectedImage: tab.iconOn?.withRenderingMode(.alwaysOriginal))
我有一个 UITabBarController
的子类,其中包含 5 个项目。
第5项为用户头像
final class HomeSceneViewController: UITabBarController {
init(tabs: [UIViewController]) {
super.init(nibName: nil, bundle: nil)
viewControllers = tabs
configureUI()
}
required init?(coder: NSCoder) {
return nil
}
}
private extension HomeSceneViewController {
func configureUI() {
view.backgroundColor = .white
tabBar.unselectedItemTintColor = .red
tabBar.tintColor = .blue
}
}
目前,每个视图控制器使用 tabBarItem = UITabBarItem(title: nil, image: tab.iconOff, selectedImage: tab.iconOn)
设置它自己的 tabBarItem
属性,但 unselectedItemTintColor
正在我不想要的头像上设置覆盖因为它应该按原样显示头像。
是否可以在每个选项卡的基础上设置 unselectedItemTintColor
?
尝试像这样为图像提供 renderingMode(.alwaysOriginal):
tabBarItem = UITabBarItem(title: nil,
image: tab.iconOff?.withRenderingMode(.alwaysOriginal),
selectedImage: tab.iconOn?.withRenderingMode(.alwaysOriginal))