ios - 如何更改选中和未选中的选项卡栏图像颜色

标签 ios objective-c uinavigationcontroller uitabbarcontroller

我正在尝试更改 iOS 应用程序中标签栏项目的颜色。

subview Controller 嵌入在导航 Controller 中。

我在 AppDelegate 中添加了这段代码,它只是改变了文本的颜色。

 [UITabBarItem.appearance setTitleTextAttributes:
 @{NSForegroundColorAttributeName : [UIColor colorWithRed:38/255.0 green:54/255.0 blue:73/255.0 alpha:1.0]}
                                       forState:UIControlStateNormal];

 [UITabBarItem.appearance setTitleTextAttributes:@{NSForegroundColorAttributeName : kColorTabbarNavigationBarTint}
                                       forState:UIControlStateSelected];

在图像资源中,如果我将特定图像渲染为原始图像,它可以工作,但选择颜色不适用于该图像。

请告诉我可以做什么。

提前致谢...

最佳答案

尝试以下代码:当您想以编程方式设置时。

// get your TabBarController
//UITabBarController *tabBarController = self.tabBarController
UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController; 
UITabBar *tabBar = tabBarController.tabBar;

UITabBarItem *tabItem1 = [tabBar.items objectAtIndex:0];
[tabItem1 setSelectedImage:[UIImage imageNamed:@"selectimg"]];
tabItem1.selectedImage = [[UIImage imageNamed:@"selectimg"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ];
tabItem1.image = [[UIImage imageNamed:@"deselectimg"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ];
tabItem1.title = @"xxxx";

UITabBarItem *tabItem2 = [tabBar.items objectAtIndex:1];
tabItem2.selectedImage = [[UIImage imageNamed:@"selectimg"]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ];
tabItem2.image = [[UIImage imageNamed:@"deselectimg"]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ];
tabItem2.title = @"xxxx";

UITabBarItem *tabItem3 = [tabBar.items objectAtIndex:2];
tabItem3.selectedImage = [[UIImage imageNamed:@"selectimg"]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ];
tabItem3.image = [[UIImage imageNamed:@"deselectimg"]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ];
tabItem3.title = @"xxxx";

UITabBarItem *tabItem4 = [tabBar.items objectAtIndex:3];
tabItem4.selectedImage = [[UIImage imageNamed:@"selectimg"]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ];
tabItem4.image = [[UIImage imageNamed:@"deselectimg"]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ];
tabItem4.title = @"xxxx";

或者你可以在 Storyboard中设置它,选择特定的标签项,然后看下面

enter image description here

关于ios - 如何更改选中和未选中的选项卡栏图像颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33366425/

相关文章:

android - Ionic 3 在运行 ionic cordova add platform android 后,我的 ionic-native/file,filepath,transfer 发生错误

ios - 使用imageView自定义navigationbar时存在Gap

ios - 如何从 iMessage 扩展程序打开托管应用程序?

objective-c - NSArrayController 删除 :nil - understanding the nil

ios - 调用 Web 服务后 UIActivityIndi​​catorview 不显示

ios - 当转到另一个 ViewController 时,TabBar 嵌入式 NavigationController 栏消失

ios - UIImageView 停止动画

ios - 导航栏和 Controller View 之间的自定义栏

swift - 如何快速导航一个页面到另一个页面?

iphone - 如果数据源为空,则显示默认 View 而不是 TableView