【问题标题】:Set tintColor for just one tabBarItem in Swift在 Swift 中为一个 tabBarItem 设置 tintColor
【发布时间】:2018-02-19 12:26:18
【问题描述】:

我正在尝试将 tintColor 设置为我的标签栏的一个 tabBarItem。

目前,我有:

self.tabBar.tintColor = darkGrey
self.tabBar.unselectedItemTintColor = grey

我的标签栏中有 5 个 tabBarItems(没有文本),我想在选择项目时将第一个设置为蓝色。

我该怎么做?

【问题讨论】:

    标签: ios swift swift3 uitabbarcontroller


    【解决方案1】:

    我的原始代码

    tabaritem.image=UIImage(named: imageName)?.withRenderingMode(.alwaysOriginal)

    我将 alwaysOriginal 更改为自动,它对我有用

    tabaritem.image=UIImage(named: imageName)?.withRenderingMode(.automatic)

    【讨论】:

      【解决方案2】:

      如果您只更改特定选项卡的色调颜色,那么这将很有帮助。

      var tab1 : UITabBarItem = self.tabBar.items![0] as UITabBarItem
      tab1.setTitleTextAttributes([NSForegroundColorAttributeName: UIColor.gray], for: .normal)
      
      //For Image
      tab1.image = UIImage(named: "imageName")!.withRenderingMode(.alwaysOriginal)
      

      【讨论】:

      • 不使用为什么要创建tab1?
      • @Kevinb 显然他的意图是设置 tab1.tintColor
      • 我认为TabBarItem 没有选项tintColorTabBar
      【解决方案3】:

      这是另一种方式:

      self.tabBar.tintColor = UIColor.red
      let tabSelected = self.tabBar.selectedItem!
      tabSelected.selectedImage = #imageLiteral(resourceName: "second")
      

      【讨论】:

        【解决方案4】:

        您可以在情节提要中进行编辑
        图像色调所选图标的颜色
        背景是图标的颜色标签栏
        色调是图标的颜色


        请检查下面的图片

        https://i.stack.imgur.com/7Jnwy.png

        【讨论】:

        • 我说我只想要一个标签栏项目的色调
        • 别生气 :) 试试这个。 override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) self.tabBarController?.tabBar.barTintColor = UIColor.red }
        【解决方案5】:

        您必须为每个 tabBarItem 单独设置它。 您可以通过将此代码放在 viewDidLoad() 上来更改特定选项卡的选项卡栏的颜色。

        //setting your tabBarItem to blue when selected
        self.tabBarItem.setTitleTextAttributes([NSForegroundColorAttributeName: UIColor.blue()], for:.selected)
        

        【讨论】:

        • hmm,如果您使用的是图像,我认为更改资产颜色可能更容易,而不是以编程方式覆盖它们并呈现为原始图像
        【解决方案6】:

        选择 UITabbarItem 并添加一个运行时属性 'selectedImage',选择 Type as 'Image' 并将图像的名称作为其值。

        或通过代码。

        UITabBar *tabBar = self.tabBar;
        
        UITabBarItem *targetTabBarItem = [[tabbar items] objectAtIndex:0]; // 
        whichever tab-item
        UIImage *selectedIcon = [UIImage imageNamed:@"name-of-selected-
        image.png"];
        [targetTabBarItem setSelectedImage:selectedIcon];
        

        【讨论】:

          猜你喜欢
          • 2016-03-28
          • 2015-02-09
          • 2014-05-06
          • 1970-01-01
          • 2020-03-24
          • 2012-06-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多