在 iOS7上改变标签栏的颜色

有没有一种方法可以改变色彩的标签栏在 iOS7上从默认的白色与蓝色图标到另一个色彩色调与不同的颜色按钮?

103997 次浏览

试试以下方法:

[[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 的“文档”部分的“全局着色”菜单允许您打开“颜色”窗口或选择特定的颜色。

参见:

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]];

AppDelegatedidFinishLaunchingWithOptions中。

下面的代码在任何 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内的 标签条控制器的“ 属性督察”中,确保你的底部栏设置为不透明标签栏:

Choose Opaque

现在转到 应用代表文件,查找:

- (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]];