我有一个tabBar设置,其中有5个tabBarItems都指向不同的视图控制器。我已经将项目设置为当一个tabBarItems没有被选中时,它的文本和图像都是灰色的(我使用系统默认的图像)。我正在寻找的是如何将每个被选中的tabBarItems设置成不同的颜色。例如,"主页 "的文字和图片都是红色的;"社交 "的文字和图片都是蓝色的;"关于 "的文字和图片都是绿色的;等等。
已经回答过了 (在故事板中改变标签栏项目的颜色。)但简而言之,点击你想改变的标签栏项目,你可以在Storyboard中添加一个新的运行时属性,当选择时将改变整个项目(图像&文本).May Be its Helpful For you.
如果你定义了条形项你可以这样做。
让数组=[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
}