在 override func tabBar(tabBar: UITabBar, didSelectItem item: UITabBarItem!) 中更改 Tabbar 背景颜色
Change Tabbar background color in override func tabBar(tabBar: UITabBar, didSelectItem item: UITabBarItem!)
我需要加载标签栏项目。在这里,我需要不同标签中标签栏的不同背景颜色。我正在更改 didSelectItem 中的条形色调颜色。但它的背景颜色没有改变。加载标签栏时它工作正常。
这是我的代码
override func viewDidLoad() {
if(tabIndex == 1){
UITabBar.appearance().tintColor = UIColor.whiteColor()
UITabBar.appearance().barTintColor = Colors.TAB_BAR_ALBUM_BG_COLOR
self.view.backgroundColor = Colors.TAB_BAR_ALBUM_BG_COLOR
}else if(tabIndex == 2){
UITabBar.appearance().tintColor = UIColor.whiteColor()
UITabBar.appearance().barTintColor = Colors.TAB_BAR_ME_BG_COLOR
self.view.backgroundColor = Colors.TAB_BAR_ME_BG_COLOR
}
}
加载标签栏色调时加载正常
override func tabBar(tabBar: UITabBar, didSelectItem item: UITabBarItem!) {
UITabBar.appearance().tintColor = UIColor.whiteColor()
if(item.tag == 1){
UITabBar.appearance().barTintColor = Colors.TAB_BAR_ALBUM_BG_COLOR
self.view.backgroundColor = Colors.TAB_BAR_ALBUM_BG_COLOR
}else if(item.tag == 2){
UITabBar.appearance().barTintColor = Colors.TAB_BAR_ME_BG_COLOR
self.view.backgroundColor = Colors.TAB_BAR_ME_BG_COLOR
}
}
在更改标签栏项目时它不起作用。
将 UITabBar.appearance().barTintColor = Colors.TAB_BAR_ME_BG_COLOR
更改为 tabBar.barTintColor = UIColor.yellowColor()
。希望这有帮助。
找到解决方案,使应用程序委托中的 UITabBar 完全透明
[[UITabBar appearance] setBarTintColor:[UIColor clearColor]];
[[UITabBar appearance] setBackgroundImage:[UIImage new]];
[[UITabBar appearance] setShadowImage:[UIImage new]];
[[UITabBar appearance] setTintColor:[UIColor whiteColor]];
并更改 didSelectItem 的背景颜色
override func tabBar(tabBar: UITabBar, didSelectItem item: UITabBarItem!) {
println(" selected index \(item.tag)")
if(item.tag == 0){
dismissViewControllerAnimated(true, completion: nil)
}
if(item.tag == 1){
self.view.backgroundColor = Colors.TAB_BAR_ALBUM_BG_COLOR
}else if(item.tag == 2){
self.view.backgroundColor = Colors.TAB_BAR_ME_BG_COLOR
}
}
我需要加载标签栏项目。在这里,我需要不同标签中标签栏的不同背景颜色。我正在更改 didSelectItem 中的条形色调颜色。但它的背景颜色没有改变。加载标签栏时它工作正常。
这是我的代码
override func viewDidLoad() {
if(tabIndex == 1){
UITabBar.appearance().tintColor = UIColor.whiteColor()
UITabBar.appearance().barTintColor = Colors.TAB_BAR_ALBUM_BG_COLOR
self.view.backgroundColor = Colors.TAB_BAR_ALBUM_BG_COLOR
}else if(tabIndex == 2){
UITabBar.appearance().tintColor = UIColor.whiteColor()
UITabBar.appearance().barTintColor = Colors.TAB_BAR_ME_BG_COLOR
self.view.backgroundColor = Colors.TAB_BAR_ME_BG_COLOR
}
}
加载标签栏色调时加载正常
override func tabBar(tabBar: UITabBar, didSelectItem item: UITabBarItem!) {
UITabBar.appearance().tintColor = UIColor.whiteColor()
if(item.tag == 1){
UITabBar.appearance().barTintColor = Colors.TAB_BAR_ALBUM_BG_COLOR
self.view.backgroundColor = Colors.TAB_BAR_ALBUM_BG_COLOR
}else if(item.tag == 2){
UITabBar.appearance().barTintColor = Colors.TAB_BAR_ME_BG_COLOR
self.view.backgroundColor = Colors.TAB_BAR_ME_BG_COLOR
}
}
在更改标签栏项目时它不起作用。
将 UITabBar.appearance().barTintColor = Colors.TAB_BAR_ME_BG_COLOR
更改为 tabBar.barTintColor = UIColor.yellowColor()
。希望这有帮助。
找到解决方案,使应用程序委托中的 UITabBar 完全透明
[[UITabBar appearance] setBarTintColor:[UIColor clearColor]];
[[UITabBar appearance] setBackgroundImage:[UIImage new]];
[[UITabBar appearance] setShadowImage:[UIImage new]];
[[UITabBar appearance] setTintColor:[UIColor whiteColor]];
并更改 didSelectItem 的背景颜色
override func tabBar(tabBar: UITabBar, didSelectItem item: UITabBarItem!) {
println(" selected index \(item.tag)")
if(item.tag == 0){
dismissViewControllerAnimated(true, completion: nil)
}
if(item.tag == 1){
self.view.backgroundColor = Colors.TAB_BAR_ALBUM_BG_COLOR
}else if(item.tag == 2){
self.view.backgroundColor = Colors.TAB_BAR_ME_BG_COLOR
}
}