Как я могу установить tabBarItems для разных цветов? - PullRequest
0 голосов
/ 23 апреля 2020

У меня есть установка tabBar с 5 tabBarItems, которые все идут на разные контроллеры представления. Я настроил проект так, чтобы, когда tabBarItems не выбран, это был серый оттенок как для текста, так и для изображения (я использую системные изображения по умолчанию). То, что я ищу, это как установить для каждого из выбранных tabBarItems разные цвета. Например, «Дом» будет иметь красный оттенок как текста, так и изображения; «Социальный» будет иметь синий оттенок как текста, так и изображения; «About» будет иметь зеленый оттенок как текста, так и изображения; et c et c

Ответы [ 2 ]

0 голосов
/ 23 апреля 2020

Если вы определяете элементы бара , вы можете сделать это следующим образом:

let array = [UIColor.red, UIColor.blue, UIColor.green]

реализовать UITabBarDelegate

@IBOutlet weak var tab3: UITabBarItem!
@IBOutlet weak var tab2: UITabBarItem!
@IBOutlet weak var tab1: UITabBarItem!

func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {
    if item == tab1 {
        tabBar.tintColor = array[0]
    }else if item == tab2 {
        tabBar.tintColor = array[1]
    }else {
        tabBar.tintColor = array[2]
    }
}

Если вы используете TabBarController , добавьте этот код в каждый viewControllers:

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    self.tabBarController?.tabBar.tintColor = .green // change the color for each viewControllers
}
0 голосов
/ 23 апреля 2020

Уже ответил ( Изменить выбранный цвет панели вкладок в раскадровке ), но вкратце, нажмите на элемент панели вкладок, который вы хотите изменить sh, и вы можете добавить новый атрибут времени выполнения в раскадровке который изменит весь элемент (изображение и текст) при выборе. Может быть полезным для вас.

...