更改单个选项卡栏图标的unselectedItemTintColor

问题描述 投票:0回答:1

我有一个带有5个项目的UITabBarController子类。

第五项是用户头像。

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来设置自己的tabBarItem = UITabBarItem(title: nil, image: tab.iconOff, selectedImage: tab.iconOn)属性,但是unselectedItemTintColor正在我不需要的化身上设置覆盖,因为它应该按原样显示化身。

是否可以在每个标签上设置unselectedItemTintColor

ios swift uitabbarcontroller uitabbar
1个回答
2
投票

尝试像这样向图像提供renderingMode(.alwaysOriginal):

tabBarItem = UITabBarItem(title: nil,
                          image: tab.iconOff?.withRenderingMode(.alwaysOriginal),
                          selectedImage: tab.iconOn?.withRenderingMode(.alwaysOriginal))
© www.soinside.com 2019 - 2024. All rights reserved.