UITabBar 自定义图标颜色未显示

UITabBar custom icon color is not getting shown

我在 iOS 应用中使用 UITabBar。我已将图像设置为 UITabBar 项目。代码是-

self.mainTabBar.delegate = self;
mainTabBar.tintColor = nil;

[[mainTabBar.items objectAtIndex:0] setFinishedSelectedImage:[UIImage imageNamed:@"ic_1.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"ic_1.png"]];
[[mainTabBar.items objectAtIndex:1] setFinishedSelectedImage:[UIImage imageNamed:@"ic_2.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"ic_2.png"]];
[[mainTabBar.items objectAtIndex:2] setFinishedSelectedImage:[UIImage imageNamed:@"ic_3.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"ic_3.png"]];
[[mainTabBar.items objectAtIndex:3] setFinishedSelectedImage:[UIImage imageNamed:@"ic_4.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"ic_4.png"]];
[[mainTabBar.items objectAtIndex:4] setFinishedSelectedImage:[UIImage imageNamed:@"ic_5.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"ic_5.png"]];

这是标签栏的代码。它显示为 - 实际的图标图像是这样的(颜色是这样的)-

如何显示图标的实际颜色?

从视图控制器内部设置 UITabBarItems。不要直接设置它们。

例如:

UITableViewController *searchTableCon = [[UITableViewController alloc]init];
UINavigationController *searchNavCon = [[UINavigationController alloc]initWithRootViewController:searchTableCon];

searchTableCon.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"Search"
                                                    image:[UIImage imageNamed:@"Search"]
                                            selectedImage:[UIImage imageNamed:@"Search"]];

如果你使用的是iOS8.

,你可以这样使用
UIImage *image1 = [[UIImage imageNamed:@"message"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

tabBarItem1.image = image1;
tabBarItem1.selectedImage = image11;

这是来源:UITabBarItem/selectedImage

By default, the actual selected image is automatically created from the alpha values in the source image. To prevent system coloring, provide images with UIImageRenderingModeAlwaysOriginal.

你必须为此做以下事情。

UIImage * selectedImage = [UIImage imageNamed:@"selected_image.png"];
selectedImage =    [selectedImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
viewCtrl.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"Title" image:selectedImage selectedImage:selectedImage];