美文网首页IOS开发偶遇错题
IOS:修改UITabBarController 系统默认渲染蓝

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

作者: 十里桃花终是你 | 来源:发表于2018-05-16 15:13 被阅读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)、类扩展、继承的区别

    相关文章

      网友评论

        本文标题:IOS:修改UITabBarController 系统默认渲染蓝

        本文链接:https://www.haomeiwen.com/subject/axbpdftx.html