如何在tabBar中更改UNSELECTED图片的色调颜色

时间:2014-03-18 16:22:04

标签: ios objective-c uitabbarcontroller uitabbar

enter image description here

如果我self.tabBar.tintColor = [UIColor whiteColor];

我设法将所选标签栏的图像设为白色。

如何将未选中的标签栏图像设为黑色或深灰色或红色?

1 个答案:

答案 0 :(得分:1)

你可以使用这样的东西。这行代码的线索是UIImageRenderingModeAlwaysOriginal。这意味着代码显示原始图像。如果图像为红色,则图标为红色,如果图像为蓝色,则图标为蓝色。

在每个ViewController

的第一个TabBarItem中添加此代码
- (void)viewDidLoad
{
    [super viewDidLoad];

    self.tabBarItem.image = [[UIImage imageNamed:@"yourImage.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
    self.tabBarItem.selectedImage = [[UIImage imageNamed:@"yourImage.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

    ...
{

现在,您不再需要self.tabBar.tintColor = [UIColor whiteColor];

Apple文档的渲染模式:

UIImageRenderingModeAutomatic,          // Use the default rendering mode for the context where the image is used    
UIImageRenderingModeAlwaysOriginal,     // Always draw the original image, without treating it as a template
UIImageRenderingModeAlwaysTemplate,     // Always draw the image as a template image, ignoring its color information

检查此答案:stackoverflow.com/a/22766669/1381708