有没有一种方法可以改变色彩的标签栏在 iOS7上从默认的白色与蓝色图标到另一个色彩色调与不同的颜色按钮?
试试以下方法:
[[UITabBar appearance] setTintColor:[UIColor redColor]]; [[UITabBar appearance] setBarTintColor:[UIColor yellowColor]];
要着色的 非活动状态按钮,把下面的代码在您的 VC 的 viewDidLoad:
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 的“文档”部分的“全局着色”菜单允许您打开“颜色”窗口或选择特定的颜色。
参见:
Https://developer.apple.com/library/ios/documentation/userexperience/conceptual/transitionguide/appearancecustomization.html
在应用程序代表中,did FinishLaunchingWithOptions:
window.tintColor = [UIColor purpleColor];
为应用程序设置全局色彩。
IOS7.1.1
如果有人需要使用全局色彩设置:
[[UIView appearance] setTintColor:[UIColor whiteColor]];
在 AppDelegate的 didFinishLaunchingWithOptions中。
AppDelegate
didFinishLaunchingWithOptions
下面的代码在任何 viewDidLoad方法中只会改变制表条的色彩:
[self.tabBarController.tabBar setTintColor:[UIColor redColor]];
把它写在你的标签栏的 View Controller 类中:
// 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 orangeColor]];
结果很完美。
我只为每个 TabBarItem 提供了一个图像,甚至不需要 selectedImage。
我甚至在 Child-ViewController 中使用它来设置不同的 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];
对我来说最终奏效的是:
[self.tabBar setTintColor:[UIColor redColor]]; [self.tabBar setBarTintColor:[UIColor yellowColor]];
在 Interface Builder内的 标签条控制器的“ 属性督察”中,确保你的底部栏设置为不透明标签栏:
现在转到 应用代表文件,查找:
- (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]];