Как программно изменить значок по умолчанию, используемый элементом панели вкладок? - PullRequest
0 голосов
/ 02 марта 2020

У меня есть элемент TabBar, который представляет собой контур корзины, который называется «корзина». Это значок по умолчанию, предоставленный XCode. С помощью вкладки кнопки я хочу изменить этот значок на другой значок по умолчанию, предоставленный XCode под названием "cart.fill"

shoppingCartIcon.image = UIImage(named: "cart.fill")

Я уже пробовал выше, но это не Работа. Есть ли простое решение, которое я пропускаю?

1 Ответ

0 голосов
/ 02 марта 2020

Вы можете выполнить все настройки в этом классе, связанные с панелью вкладок. Просто назначьте этот класс TabbarViewController вашему UITabbarController в раскадровке и соответственно настройте все изображения и заголовки.

class TabbarViewController: UITabBarController {

    override func viewDidLoad() {
        super.viewDidLoad()

        let arrayOfImageNameForUnselectedState = ["home_unselected","info_unselected","puzzle","video","more"]

        let arrayOfImageNameForSelectedState = ["home_selected","info_selected"]

        let titlesArray = ["Home","About Us"]

        // Do any additional setup after loading the view.

        if let count = self.tabBar.items?.count {
            for i in 0...(count-1) {
                let imageNameForSelectedState   = arrayOfImageNameForSelectedState[i]
                let imageNameForUnselectedState = arrayOfImageNameForUnselectedState[i]


                self.tabBar.items?[i].title = titlesArray[i]

                self.tabBar.items?[i].selectedImage = UIImage(named: imageNameForSelectedState )?.withRenderingMode(.alwaysOriginal)
                self.tabBar.items?[i].image = UIImage(named: imageNameForUnselectedState )?.withRenderingMode(.alwaysOriginal)
            }
        }



        let selectedColor   = UIColor(red: 233.0/255.0, green: 41.0/255.0, blue: 47.0/255.0, alpha: 1.0)
        let unselectedColor = UIColor(red: 127.0/255.0, green: 140.0/255.0, blue: 141.0/255.0, alpha: 1.0)

        UITabBarItem.appearance().setTitleTextAttributes([NSAttributedString.Key.foregroundColor: unselectedColor], for: .normal)
        UITabBarItem.appearance().setTitleTextAttributes([NSAttributedString.Key.foregroundColor: selectedColor], for: .selected)

    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


}
...