更改单个标签栏图标的 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))