ios – 仅更改一个特定的UITabBarItem色调

众所周知,UITabBarController中所选(或活动)项的色调颜色可以很容易地改变,这是一个例子:
myBarController.tabBar.tintColor = [UIColor redColor];

在这种情况下,tabBar中的任何标签栏项目一旦激活就会有红色.同样,这适用于此标签栏中的所有项目.

如何在同一个栏中的其他标签栏项目之间显示活动色调颜色?例如,一个项目在选中时可能具有红色色调,而另一个项目可能具有蓝色色调.

我知道这可以通过重绘和子类化整个标签栏来解决.然而,这是我需要的唯一改变,这样做似乎有点过头了.我不是试图改变样式或以任何方式呈现项目的方式,只是为了使不同项目之间的风格不同.

我没有看到任何与iOS 7和8中的更新相关的问题的答案.

解决方法

一个更简单的方法来做到这一点!
将它添加到ViewController中,其中UITabBar Item应该是另一种颜色
- (void) viewWillAppear:(BOOL)animated {
   // change tint color to red
   [self.tabBarController.tabBar setTintColor:[UIColor redColor]];
   [super viewWillAppear: animated];
}

将其插入其他ViewControllers

- (void) viewWillAppear:(BOOL)animated {
   // change tint color to black
   [self.tabBarController.tabBar setTintColor:[UIColor blackColor]];
   [super viewWillAppear: animated];
}

我用它来在每个ViewController中获得不同的Tint颜色例如:[红色|黑色|绿色|粉色]

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...