简体   繁体   中英

Tab bar button always show blue color in iOS?

I have added a tabbar in my app. I am showing 5 tabs at once. I am trying to make the custom colors of the tab bar. I have used following in my TabBarController

UITabBarItem *homeTab = [self.exposeTabBar.items objectAtIndex:0];
    UIImage *home_unselectedImage = [UIImage imageNamed:@"home.png"];
    UIImage *home_selectedImage = [UIImage imageNamed:@"home.png"];
    [homeTab setImage: [home_unselectedImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];
    [homeTab setSelectedImage: home_selectedImage];

    UITabBarItem *bookmarkTab = [self.exposeTabBar.items objectAtIndex:1];
    UIImage *bookmark_unselectedImage_ = [UIImage imageNamed:@"bookmark.png"];
    UIImage *bookmark_selectedImage = [UIImage imageNamed:@"bookmark.png"];
    [bookmarkTab setImage: [bookmark_unselectedImage_ imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];
    [bookmarkTab setSelectedImage: bookmark_selectedImage];

    UITabBarItem *postTab = [self.exposeTabBar.items objectAtIndex:2];
    UIImage *post_unselectedImage_ = [UIImage imageNamed:@"create-post.png"];
    UIImage *post_selectedImage = [UIImage imageNamed:@"create-post_white.png"];
    [postTab setImage: [post_unselectedImage_ imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];
    [postTab setSelectedImage: post_selectedImage];

    UITabBarItem *notificationTab = [self.exposeTabBar.items objectAtIndex:3];
    UIImage *notification_unselectedImage_ = [UIImage imageNamed:@"notifications.png"];
    UIImage *notification_selectedImage = [UIImage imageNamed:@"notifications_white.png"];
    [notificationTab setImage: [notification_unselectedImage_ imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];
    [notificationTab setSelectedImage: notification_selectedImage];

    UITabBarItem *profileTab = [self.exposeTabBar.items objectAtIndex:4];
    UIImage *profile_unselectedImage_ = [UIImage imageNamed:@"user-profile.png"];
    UIImage *profile_selectedImage = [UIImage imageNamed:@"user-profile_white.png"];
    [profileTab setImage: [profile_unselectedImage_ imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];
    [profileTab setSelectedImage: profile_selectedImage];

For unselected Image it is showing the correct image but for selected image it is not showing the right image. It is showing some blue image for the icon.

Please tell how can I prevent this?

尝试在应用程序委托中使用颜色清晰的标签栏外观api方法:

[[UITabBar appearance] setTintColor:[UIColor clearColor]];

try to change tabBar color and tabBar tint example:

// Generate a black tab bar

self.tabBarController.tabBar.barTintColor = [UIColor blackColor];



// Set the selected icons and text tint color

self.tabBarController.tabBar.tintColor = [UIColor orangeColor];

Try to change tabBarController's "tabEdgeColor" and "topEdgeColor".

Or change the barTint or tint color of tabBar to clear color.

对于选定的图像,还应该设置渲染模式,请尝试以下操作:

[homeTab setSelectedImage:[home_selectedImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];

You can use custom image for different color

tabBarItem1.image = [[UIImage imageNamed:"imag"]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ];
tabBarItem1.selectedImage = [[UIImage imageNamed:@"selected_image"]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ];

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM