您的位置:首页 > 其它

设置TabBarItem选中时的图片及文字颜色

2016-08-01 22:44 260 查看
TabBarItem选中时,默认文字和图片都变为蓝色。使用以下代码可以进行修改。

MainViewController *mainVC = [[MainViewController alloc] init];
UINavigationController *mainNVC = [[UINavigationController alloc] initWithRootViewController:mainVC];
[mainNVC.navigationBar setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor whiteColor]}];
mainNVC.tabBarItem.title = @"首页";
[mainNVC.tabBarItem setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor orangeColor]} forState:UIControlStateSelected];
mainNVC.tabBarItem.image = [UIImage imageNamed:@"main"];
mainNVC.tabBarItem.selectedImage = [[UIImage imageNamed:@"main_select"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

其中,文字的颜色改变关键代码为

[orderNVC.tabBarItem setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor orangeColor]} forState:UIControlStateSelected];

即使用给选中状态的的文字添加一个富文本属性。

而图片颜色修改的关键代码为

//设置选中时的图片
orderNVC.tabBarItem.selectedImage = [[UIImage imageNamed:@"order_select"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

即设置选中状态时显示的图片,并且要注意修改该图片的呈现方式。

UIImage 在呈现(render)时会选择对应的呈现方式(render mode),ios提供了3种render mode,分别是

意义
UIImageRenderingModeAutomatic根据图片的使用位置自动调整渲染模式(默认值)
UIImageRenderingModeAlwaysOriginal始终绘制图片原始状态,不适用tint color。
UIImageRenderingModeAlwaysTemplate使用根据tint color绘制图片,忽略图片的颜色信息

参考

设置 TabBarItem 选中时的图片及文字颜色
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: