1.

统一设置UITabBarController管理的所有VC的tabBarItem图标文字的颜色大小等属性

.  统一设置UITabBarController管理的所有VC的tabBarItem图标文字的颜色大小等属性

//设置字体大小及颜色(可变字典才可用[]方法设值)
NSMutableDictionary *attr = [NSMutableDictionary dictionary];
attr[NSFontAttributeName] = [UIFont systemFontOfSize:];
attr[NSForegroundColorAttributeName] = [UIColor grayColor]; NSMutableDictionary *selectAttr = [NSMutableDictionary dictionary];
selectAttr[NSFontAttributeName] = [UIFont systemFontOfSize:];//NSFontAttributeName是个const变量,一旦设置了19,后面就不能再改了,这里改为5无效
selectAttr[NSForegroundColorAttributeName] = [UIColor darkGrayColor];//不能写成NSBackgroundColorAttributeName UITabBarItem *item = [UITabBarItem appearance];
[item setTitleTextAttributes:attr forState:UIControlStateNormal];
[item setTitleTextAttributes:selectAttr forState:UIControlStateSelected]; . 就不用像下面这样单独给每一个VC.tabBarItem设置字体大小和颜色了
[vc01.tabBarItem setTitleTextAttributes:attr forState:UIControlStateNormal];
[vc01.tabBarItem setTitleTextAttributes:selectAttr forState:UIControlStateSelected]; [vc02.tabBarItem setTitleTextAttributes:attr forState:UIControlStateNormal];
[vc02.tabBarItem setTitleTextAttributes:selectAttr forState:UIControlStatelectSelected]; [vc03.tabBarItem setTitleTextAttributes:attr forState:UIControlStateNormal];
[vc03.tabBarItem setTitleTextAttributes:selectAttr forState:UIControlStateSelected];

2.

原理是:setTitleTextAttributes:forState: 函数后面有备注UI_APPEARANCE_SELECTOR,

可以通过 [Class appearance] setTitleTextAttributes: forState: ]; 来同一设置字体颜色。

//设置UITabBarItem:UIBarItem的颜色属性

NS_CLASS_AVAILABLE_IOS(2_0) @interface UIBarItem : NSObject <NSCoding, UIAppearance>

- (void)setTitleTextAttributes:(nullable NSDictionary<NSString *,id> *)attributes forState:(UIControlState)state NS_AVAILABLE_IOS(5_0) UI_APPEARANCE_SELECTOR;

- (nullable NSDictionary<NSString *,id> *)titleTextAttributesForState:(UIControlState)state NS_AVAILABLE_IOS(5_0) UI_APPEARANCE_SELECTOR

3.

封装了如下方法,后续要同一设置根控制器UITabBarController管理的各个VC的tabBarItem的字体和颜色,可直接在UITabBarController的viewDidLoad方法中调用[self  setTabBarItemFontAndColor];

//统一设置所有vc的TabBarItem的字体和颜色
- (void)setTabBarItemFontAndColor { //设置字体大小及颜色(可变字典才可用此方法)
NSMutableDictionary *attr = [NSMutableDictionary dictionary];
attr[NSFontAttributeName] = [UIFont systemFontOfSize:];
attr[NSForegroundColorAttributeName] = [UIColor grayColor];//NSBackgroundColorAttributeName字体的背景颜色,一般不需要 NSMutableDictionary *selectAttr = [NSMutableDictionary dictionary];
selectAttr[NSFontAttributeName] = [UIFont systemFontOfSize:];//NSFontAttributeName是个const变量,一旦设置了19,后面就不能再改了,这里改为5无效
selectAttr[NSForegroundColorAttributeName] = [UIColor darkGrayColor];//这里不能写成NSBackgroundColorAttributeName UITabBarItem *item = [UITabBarItem appearance];
[item setTitleTextAttributes:attr forState:UIControlStateNormal];
[item setTitleTextAttributes:selectAttr forState:UIControlStateSelected];//注意此处为UIControlStateSelected,不能写成Highlighted了 //原理是:setTitleTextAttributes:forState: 函数后面有备注UI_APPEARANCE_SELECTOR,可以通过 [Class appearance] setTitleTextAttributes: forState: ]; 来同一设置字体颜色。
}

[BS-03] 统一设置UITabBarController管理的所有VC的tabBarItem图标文字的颜色大小等属性的更多相关文章

  1. UITabBar-UITabBarItem图片的背景颜色属性和文字的颜色大小设置

    UITabBarItem设置的图片选中状态下默认的是蓝色,如何改变它的颜色为图片自带的颜色呢? typedef NS_ENUM(NSInteger, UIImageRenderingMode) { / ...

  2. [BS-10] 统一设置app所有页面的“返回”按钮样式

    统一设置app所有页面的“返回”按钮样式 如果想统一设置app所有页面的“返回”按钮样式,首先自定义WZNavigationController类继承UINavigationController类,然 ...

  3. SpringBoot系列三:SpringBoot基本概念(统一父 pom 管理、SpringBoot 代码测试、启动注解分析、配置访问路径、使用内置对象、项目打包发布)

    声明:本文来源于MLDN培训视频的课堂笔记,写在这里只是为了方便查阅. 1.了解SpringBoot的基本概念 2.具体内容 在之前所建立的 SpringBoot 项目只是根据官方文档实现的一个基础程 ...

  4. iOS 怎么设置 UITabBarController 的第n个item为第一响应者?

    iOS 怎么设置 UITabBarController 的第n个item为第一响应者? UITabBarController 里面有个属性:selectedIndex @property(nonato ...

  5. [转]Vs解决方案的目录结构设置和管理

    原文地址:[转]Vs解决方案的目录结构设置和管理 作者:大明   以下内容为“原创”+“转载” 首先,解决方案和项目文件夹包含关系(c++项目): VS解决方案和各个项目文件夹以及解决方案和各个项目对 ...

  6. Vs 2008 解决方案的目录结构设置和管理(转)

    http://blog.csdn.net/lcj_cjfykx/article/details/8632459 MS的这个IDE,实在庞杂得恐怖.从大学开始,我就一直用VC的各个版本写程序至今,细细想 ...

  7. VC 2005 解决方案的目录结构设置和管理

    VC 2005 解决方案的目录结构设置和管理   Roger (roger2yi@gmail.com)   一个中等规模的解决方案通常都会包含多个项目,其中一些项目产出静态库,一些产出动态库,一些用于 ...

  8. Spring Cloud中Feign如何统一设置验证token

    代码地址:https://github.com/hbbliyong/springcloud.git 原理是通过每个微服务请求之前都从认证服务获取认证之后的token,然后将token放入到请求头中带过 ...

  9. VS解决方案的目录结构设置和管理

    一个中等规模的解决方案通常都会包含多个项目,其中一些项目产出静态库,一些产出动态库,一些用于单元测试,还有的产出最终的应用程序执行档.除此以外,根据项目的需求,还会使用一些第三方的库.   所以为解决 ...

随机推荐

  1. 【应用笔记】【AN001】VC#开发环境下基于以太网的4-20mA电流采集(基于modbus tcp 协议)

    版本:第一版 作者:毛鹏 杨帅 日期:20151108 简介 4-20mA电流环具有广泛的应用前景,在许多行业中都发挥着重要作用.本文主要介绍了以太网接口的4-20mA电流采集模块在VC#环境下进行温 ...

  2. Apache Spark源码走读之11 -- sql的解析与执行

    欢迎转载,转载请注明出处,徽沪一郎. 概要 在即将发布的spark 1.0中有一个新增的功能,即对sql的支持,也就是说可以用sql来对数据进行查询,这对于DBA来说无疑是一大福音,因为以前的知识继续 ...

  3. django 1.8 日志配置

    django 1.8 日志配置 以下为setings配置logging代码片段 BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(_ ...

  4. 使用Nsight查找CE3的渲染bug

    工作临时的接的一个小任务,查找ce3引擎修改后在绘制上出的一点bug 在代码的底层调用代码做了一些修改后,场景里的绘制的问题,因为也是刚接触CE3代码,也只能通过Nsight来查找问题了.   首先用 ...

  5. PHP pear安装

    PHP pear安装 Posted on 2012-07-06 10:19 bug yang 阅读(5787) 评论(0) 编辑 收藏 转自:http://wangye.org/blog/archiv ...

  6. Heterogeneous System Architecture

    https://en.wikipedia.org/wiki/Heterogeneous_System_Architecture Steps performed when offloading calc ...

  7. poj1979

    #include<stdio.h>int map[4][4]={'.','.','.','.',      '#','.','.','.',      '.','#','.','.',   ...

  8. 12秒开机!ExpressCache SSD缓存加速

    SSD固态硬盘的读写速度比传统硬盘快了很多,读取速度能到300M/s 写入速度大约在80M/S 但SSD硬盘的价格也笔记机械硬盘高了很多,128G的固态硬盘淘宝价大概在800左右,想想现在随便一个软件 ...

  9. 新建android项目报错,代码中找不到错误

    通过网上资料的引导,做以下操作: 1.进入C:\Documents and Settings\Administrator\.android 删除路径下的debug.keystore及 ddms.cfg ...

  10. Jetbrains phpstorm pycharm 免费授权注册码

    通过授权服务器授权 jetbrains是一家专门做IDE的软件公司,软件也非常好用,但是授权特别贵,下面就说说免费的方式,就是使用授权服务器,地址:http://idea.qinxi1992.cn 自 ...