有没有办法将iOS 7上标签栏的色调从默认的白色和蓝色图标更改为另一种颜色和不同颜色的按钮?
nhjlsmyf1#
尝试以下方法:
[[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];
你需要对所有的tabBarItem都这样做,是的,我知道这很难看,希望有更干净的方法来做这件事。
UITabBar.appearance().tintColor = UIColor.red tabBarItem.image = UIImage(named: "unselected")?.withRenderingMode(.alwaysOriginal) tabBarItem.selectedImage = UIImage(named: "selected")?.withRenderingMode(.alwaysOriginal)
3df52oht2#
有一个简单得多的方法可以做到这一点。只需打开文件检查器并选择一个“全局色调”。您也可以在界面生成器中设定应用的色调颜色:“文件”检查器的“界面生成器文档”部分中的“全局色调”菜单可让您打开“颜色”窗口或选取特定颜色。另见:https://developer.apple.com/library/ios/documentation/userexperience/conceptual/TransitionGuide/AppearanceCustomization.html
pn9klfpd3#
iOS 7.1.1操作系统
如果有人需要使用全局设置色调颜色:
[[UIView appearance] setTintColor:[UIColor whiteColor]];
在AppDelegate的didFinishLaunchingWithOptions中。同样,以下代码将仅更改任何viewDidLoad方法中的选项卡栏色调颜色:
AppDelegate
didFinishLaunchingWithOptions
[self.tabBarController.tabBar setTintColor:[UIColor redColor]];
wkftcu5l4#
在应用程序委托中,完成LaunchingWithOptions:
window.tintColor = [UIColor purpleColor];
为应用程序全局设置色调颜色。
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];
b4lqfgs46#
最后对我起作用的是:
[self.tabBar setTintColor:[UIColor redColor]]; [self.tabBar setBarTintColor:[UIColor yellowColor]];
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]];
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]; }
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];
9条答案
按热度按时间nhjlsmyf1#
尝试以下方法:
要为非活动按钮着色,请将以下代码放入VC的
viewDidLoad
中:你需要对所有的tabBarItem都这样做,是的,我知道这很难看,希望有更干净的方法来做这件事。
3df52oht2#
有一个简单得多的方法可以做到这一点。
只需打开文件检查器并选择一个“全局色调”。
您也可以在界面生成器中设定应用的色调颜色:“文件”检查器的“界面生成器文档”部分中的“全局色调”菜单可让您打开“颜色”窗口或选取特定颜色。
另见:
https://developer.apple.com/library/ios/documentation/userexperience/conceptual/TransitionGuide/AppearanceCustomization.html
pn9klfpd3#
iOS 7.1.1操作系统
如果有人需要使用全局设置色调颜色:
在
AppDelegate
的didFinishLaunchingWithOptions
中。同样,以下代码将仅更改任何
viewDidLoad
方法中的选项卡栏色调颜色:wkftcu5l4#
在应用程序委托中,完成LaunchingWithOptions:
为应用程序全局设置色调颜色。
d8tt03nd5#
在选项卡栏的View Controller类中编写以下内容:
b4lqfgs46#
最后对我起作用的是:
tf7tbtn27#
在 Interface Builder 内的 * 选项卡栏控制器 * 的“ 属性检查器 ”中,确保将底部栏设置为不透明选项卡栏:
现在后藤 AppDelegate.m 文件。查找:
然后在花括号之间添加以下代码,以更改选项卡栏按钮和选项卡栏背景的颜色:
zfycwa2u8#
在尝试了所有建议的解决方案后,我找不到任何有用的。
最后我尝试了以下方法:
结果很完美。
我只为每个TabBarItem提供了一个图像,甚至不需要selectedImage。
我甚至在Child-ViewControllers中使用它来设置不同的TintColors:
lnvxswe29#
可以将色调颜色和字体设置为setTitleTextattribute: