簡體   English   中英

Tab Bar Controller中TabBar項目的不同顏色

[英]Different colors for TabBar items in Tab Bar Controller

我有幾個標簽的標簽欄控制器。

  • 所有選項卡項的圖像和文本應具有相同的未選擇顏色。

  • 所有選項卡項目應為圖像和文本選擇不同的顏色。

我已經准備好創建具有​​選定和未選定項目所需顏色的圖像。 而且我知道如何從AppDelegate的所有選項卡更改此顏色

    UITabBar.appearance().tintColor = UIColorFromRGB(rgbValue: MY_COLOR, aplhaValue: 1.0)
    UITabBarItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName: UIColorFromRGB(rgbValue: MY_COLOR, aplhaValue: 1.0)], for: UIControlState.selected)
    UITabBarItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName: UIColor.white], for: UIControlState.normal)

但是我想為不同的物品制作不同的顏色。

在情節提要中,選擇TabBarController並為其提供一個自定義類:在本示例中為TabBarController

在此處輸入圖片說明 在此處輸入圖片說明

然后創建自定義的TabBarController文件:

//  Copyright © 2017 Erick Vavretchek. All rights reserved.

import UIKit

class TabBarController: UITabBarController {

  enum tabBarMenu: Int {
    case home
    case list
    case settings
  }

  // MARK: UITabBarController

  override func viewDidLoad() {

    super.viewDidLoad()

    guard let tabBarMenuItem = tabBarMenu(rawValue: 0) else { return }
    setTintColor(forMenuItem: tabBarMenuItem)
  }

  override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {

    guard
      let menuItemSelected = tabBar.items?.index(of: item),
      let tabBarMenuItem = tabBarMenu(rawValue: menuItemSelected)
      else { return }

    setTintColor(forMenuItem: tabBarMenuItem)
  }

  // MARK: Private

  private func setTintColor(forMenuItem tabBarMenuItem: tabBarMenu) {
    switch tabBarMenuItem {
    case .home:
      viewControllers?[tabBarMenuItem.rawValue].tabBarController?.tabBar.tintColor = UIColor.green
    case .list:
      viewControllers?[tabBarMenuItem.rawValue].tabBarController?.tabBar.tintColor = UIColor.red
    case .settings:
      viewControllers?[tabBarMenuItem.rawValue].tabBarController?.tabBar.tintColor = UIColor.red
    }
  }
}

同樣重要的是,在Assets.xcassets文件夾中,選擇用於TabBarItem的每個圖像,並將它們設置為Render As: Template Image 這樣就可以簡單地將其tintColor更改為您喜歡的任何顏色:

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM