IOS开发偶遇错题

IOS:修改UITabBarController 系统默认渲染蓝

2018-05-16  本文已影响17人  十里桃花终是你

前言: 

        使用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)—史上最全攻略

类别(Category)与类扩展 (Extension)的区别

iOS - 类扩展与分类的区别

iOS之类别(Category)、类扩展、继承的区别

上一篇下一篇

猜你喜欢

热点阅读