前言:
使用UITabBarController做控制器的时候发现UI给的图标背系统渲染成了蓝色!(QNMGBD要你丫多事🔥)然后网上搜索解决方案,现在将方案总结下。
问题:
UITabBarController控制器item被系统默认渲染为蓝色
解决方案:
方案一:
在controller中调用方法将文字和图片进行统一渲染:
[self.tabBarController.tabBar setTintColor:[UIColor colorWithHexString:@"#09CCA2"]];
方案二:(这个没验证)
使用代码:
UIImage *selectedImage = [UIImage imageNamed:@"tabBar_essence_click_icon"];
selectedImage = [mSelectedImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
self.tabBarItem.selectedImage = selectedImage;
UIImageRenderingModeAutomatic // 根据图片的使用环境和所处的绘图上下文自动调整渲染模式。
UIImageRenderingModeAlwaysOriginal // 始终绘制图片原始状态,不使用Tint Color。UIImageRenderingModeAlwaysTemplate // 始终根据Tint Color绘制图片,忽略图片的颜色信息。
使用SB:(这个验证了)
1、找到Item图标
2、找到图标的Render AS 属性 并选择为Original Image (这里的作用是让系统不要对图片进行处理使用原始图片)
总结:这两种方法的作用都只针对Item的图标所以设置后如果不做其他设定那么文字部分依旧是蓝色
所以如果要设置字体的话还需要如下代码进行单独定制(设定颜色和字体):
[self.tabBarController.tabBarItem setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor redColor]} forState:UIControlStateSelected];
参考:
HASH颜色:
iOS开发-一句代码轻松实现十六进制颜色(#开头)转RGB颜色
UITabBarController设置选中时图片和文字的颜色
ios8中UITabbarController的图片颜色处理
深入浅出理解分类(category)和类扩展(extension)
iOS分类(category),类扩展(extension)—史上最全攻略
网友评论