【问题标题】:how to change disabled item color in TabBar in swift 3?如何在 swift 3 中更改 TabBar 中禁用的项目颜色?
【发布时间】:2018-01-06 15:26:54
【问题描述】:

我的项目中有一个 TabBar,当用户选择项目时,该项目将禁用,但颜色也会改变!我希望颜色与 TabBar 中的其他项目颜色相同 我用过

item.isEnabled = false

用于禁用项目,但此处的代码不适用于该项目

 override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)

    self.tabBar.barTintColor = UIColor.init(red: 126/255, green: 0/255, blue: 64/255, alpha: 1.0)
    if #available(iOS 10.0, *) {
        self.tabBar.unselectedItemTintColor = UIColor.white
        self.tabBar.unselectedItemTintColor = UIColor.white

    } else {
        // Fallback on earlier versions
    }
    UITabBar.appearance().tintColor = UIColor.white

}

【问题讨论】:

  • 如果你想改变所选项目的颜色,那么将该颜色设为 UITabBar.appearance().tintColor
  • 不,你不明白我想要什么 - 当用户点击其中一个项目时,它将被禁用,但它的颜色也会改变我希望即使项目被禁用,颜色也不会改变- 请记住该项目是禁用而不是取消选择
  • 是的,我的意思是只有禁用的项目是用户选择正确的项目?
  • 是的,当用户选择项目时,它将被禁用但我不想更改颜色我想要禁用项目颜色类似于我们在 swift 中启用的项目?
  • 您找到解决问题的方法了吗?我有同样的问题:-)

标签: ios swift3 uitabbarcontroller uicolor uitabbaritem


【解决方案1】:

试试这个代码 -

UITabBar.appearance().tintColor = UIColor.gray
UITabBar.appearance().unselectedItemTintColor = UIColor.gray

希望这会有所帮助!

【讨论】:

  • 否,因为该项目被选中不是取消选择而是禁用
【解决方案2】:

您可以使用 UITabBarControllerDelegate 方法来禁用选择

try this code 

func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool {
    return false
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-12
    • 1970-01-01
    • 2019-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-11
    相关资源
    最近更新 更多