有没有一种方法可以将iOS 7上标签栏的颜色从带有蓝色图标的默认白色更改为具有不同颜色按钮的另一种颜色?
有没有一种方法可以将iOS 7上标签栏的颜色从带有蓝色图标的默认白色更改为具有不同颜色按钮的另一种颜色?
Answers:
请尝试以下方法:
[[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中设置应用程序的颜色。通过文件检查器的“界面生成器文档”部分中的“全局色调”菜单,您可以打开“颜色”窗口或选择特定的颜色。
另请参阅:
iOS 7.1.1
如果有人需要使用全局设置色调颜色:
[[UIView appearance] setTintColor:[UIColor whiteColor]];
在didFinishLaunchingWithOptions
中AppDelegate
。
同样,下面的代码将以任何viewDidLoad
方法仅更改选项卡栏的颜色:
[self.tabBarController.tabBar setTintColor:[UIColor redColor]];
在应用程序委托didFinishLaunchingWithOptions中:
window.tintColor = [UIColor purpleColor];
为应用程序全局设置色调颜色。
最终对我有用的是:
[self.tabBar setTintColor:[UIColor redColor]];
[self.tabBar setBarTintColor:[UIColor yellowColor]];
在“属性检查器”你的标签栏控制器内Interface Builder中确保你的底栏设置为不透明标签栏:
现在转到您的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];