试试下面的:
[[UITabBar appearance] setTintColor:[UIColor redColor]];
[[UITabBar appearance] setBarTintColor:[UIColor yellowColor]];
要为 非活动 按钮着色,请将以下代码放入 VC 的 viewDidLoad
中:
UITabBarItem *tabBarItem = [yourTabBarController.tabBar.items objectAtIndex:0];
UIImage *unselectedImage = [UIImage imageNamed:@"icon-unselected"];
UIImage *selectedImage = [UIImage imageNamed:@"icon-selected"];
[tabBarItem setImage: [unselectedImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];
[tabBarItem setSelectedImage: selectedImage];
您需要对所有 tabBarItems 执行此操作,是的,我知道这很丑陋,希望有更清洁的方法来执行此操作。
迅速:
UITabBar.appearance().tintColor = UIColor.red
tabBarItem.image = UIImage(named: "unselected")?.withRenderingMode(.alwaysOriginal)
tabBarItem.selectedImage = UIImage(named: "selected")?.withRenderingMode(.alwaysOriginal)
有一种更简单的方法可以做到这一点。
只需打开文件检查器并选择“全局色调”。
您还可以在 Interface Builder 中设置应用程序的色调颜色。文件检查器的 Interface Builder Document 部分中的 Global Tint 菜单可让您打开 Colors 窗口或选择特定颜色。
另见:
iOS 7.1.1
如果有人需要使用全局设置色调颜色:
[[UIView appearance] setTintColor:[UIColor whiteColor]];
在 AppDelegate
的 didFinishLaunchingWithOptions
中。
以下代码也将在任何 viewDidLoad
方法中仅更改标签栏色调颜色:
[self.tabBarController.tabBar setTintColor:[UIColor redColor]];
在应用程序委托 didFinishLaunchingWithOptions 中:
window.tintColor = [UIColor purpleColor];
为应用程序全局设置色调颜色。
在标签栏的视图控制器类中写下:
// 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];
最终对我有用的是:
[self.tabBar setTintColor:[UIColor redColor]];
[self.tabBar setBarTintColor:[UIColor yellowColor]];
在 Interface Builder 中标签栏控制器的“属性检查器”中,确保底部栏设置为不透明标签栏:
https://i.stack.imgur.com/IzKPv.png
现在转到您的 AppDelegate.m 文件。寻找:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
然后在花括号之间添加此代码以更改选项卡栏按钮和选项卡栏背景的颜色:
///----------------SET TAB BAR COLOR------------------------//
//--------------FOR TAB BAR BUTTON COLOR---------------//
[[UITabBar appearance] setTintColor:[UIColor greenColor]];
//-------------FOR TAB BAR BACKGROUND COLOR------------//
[[UITabBar appearance] setBarTintColor:[UIColor whiteColor]];
在尝试了所有建议的解决方案后,我找不到任何非常有用的解决方案。
我终于尝试了以下方法:
[self.tabBar setTintColor:[UIColor orangeColor]];
效果很好。
我只为每个 TabBarItem 提供了一张图片。甚至不需要 selectedImage。
我什至在 Child-ViewControllers 中使用它来设置不同的 TintColors:
UIColor *theColorYouWish = ...;
if ([[self.parentViewController class] isSubclassOfClass:[UITabBarController class]]){
UITabBarController *tbc = (UITabBarController *) self.parentViewController;
[tbc.tabBar setTintColor:theColorYouWish];
}
您可以将色调颜色和字体设置为 setTitleTextattribute:
UIFont *font= (kUIScreenHeight>KipadHeight)?[UIFont boldSystemFontOfSize:32.0f]:[UIFont boldSystemFontOfSize:16.0f];
NSDictionary *attributes = [NSDictionary dictionaryWithObjectsAndKeys:font, NSFontAttributeName,
tintColorLight, NSForegroundColorAttributeName, nil];
[[UINavigationBar appearance] setTitleTextAttributes:attributes];