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"]];
这是标签栏的代码。它显示为 -
实际的图标图像是这样的(颜色是这样的)-
如何显示图标的实际颜色?
从视图控制器内部设置 UITabBarItem
s。不要直接设置它们。
例如:
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];
我在 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"]];
这是标签栏的代码。它显示为 -
如何显示图标的实际颜色?
从视图控制器内部设置 UITabBarItem
s。不要直接设置它们。
例如:
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];