在iOS 7及更高版本上更改选项卡栏色调颜色

bqf10yzr  于 2023-01-03  发布在  iOS
关注(0)|答案(9)|浏览(134)

有没有办法将iOS 7上标签栏的色调从默认的白色和蓝色图标更改为另一种颜色和不同颜色的按钮?

nhjlsmyf

nhjlsmyf1#

尝试以下方法:

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

你需要对所有的tabBarItem都这样做,是的,我知道这很难看,希望有更干净的方法来做这件事。

    • 斯威夫特:**
UITabBar.appearance().tintColor = UIColor.red

tabBarItem.image = UIImage(named: "unselected")?.withRenderingMode(.alwaysOriginal)
tabBarItem.selectedImage = UIImage(named: "selected")?.withRenderingMode(.alwaysOriginal)
3df52oht

3df52oht2#

有一个简单得多的方法可以做到这一点。
只需打开文件检查器并选择一个“全局色调”。
您也可以在界面生成器中设定应用的色调颜色:“文件”检查器的“界面生成器文档”部分中的“全局色调”菜单可让您打开“颜色”窗口或选取特定颜色。
另见:
https://developer.apple.com/library/ios/documentation/userexperience/conceptual/TransitionGuide/AppearanceCustomization.html

pn9klfpd

pn9klfpd3#

iOS 7.1.1操作系统

如果有人需要使用全局设置色调颜色:

[[UIView appearance] setTintColor:[UIColor whiteColor]];

AppDelegatedidFinishLaunchingWithOptions中。
同样,以下代码将仅更改任何viewDidLoad方法中的选项卡栏色调颜色:

[self.tabBarController.tabBar setTintColor:[UIColor redColor]];
wkftcu5l

wkftcu5l4#

在应用程序委托中,完成LaunchingWithOptions:

window.tintColor = [UIColor purpleColor];

为应用程序全局设置色调颜色。

d8tt03nd

d8tt03nd5#

在选项卡栏的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];
b4lqfgs4

b4lqfgs46#

最后对我起作用的是:

[self.tabBar setTintColor:[UIColor redColor]];
[self.tabBar setBarTintColor:[UIColor yellowColor]];
tf7tbtn2

tf7tbtn27#

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

zfycwa2u8#

在尝试了所有建议的解决方案后,我找不到任何有用的。
最后我尝试了以下方法:

[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];
}
lnvxswe2

lnvxswe29#

可以将色调颜色和字体设置为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];

相关问题