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

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

//设置字体大小及颜色(可变字典才可用[]方法设值)
    NSMutableDictionary *attr = [NSMutableDictionary dictionary];
    attr[NSFontAttributeName] = [UIFont systemFontOfSize:19];
    attr[NSForegroundColorAttributeName] = [UIColor grayColor];

    NSMutableDictionary *selectAttr = [NSMutableDictionary dictionary];
    selectAttr[NSFontAttributeName] = [UIFont systemFontOfSize:5];//NSFontAttributeName是个const变量,一旦设置了19,后面就不能再改了,这里改为5无效
    selectAttr[NSBackgroundColorAttributeName] = [UIColor darkGrayColor];

    UITabBarItem *item = [UITabBarItem appearance];
    [item setTitleTextAttributes:attr forState:UIControlStateNormal];
    [item setTitleTextAttributes:selectAttr forState:UIControlStateHighlighted];

2. 就不用像下面这样单独给每一个VC.tabBarItem设置字体大小和颜色了
[vc01.tabBarItem setTitleTextAttributes:attr forState:UIControlStateNormal];
    [vc01.tabBarItem setTitleTextAttributes:selectAttr forState:UIControlStateHighlighted];

[vc02.tabBarItem setTitleTextAttributes:attr forState:UIControlStateNormal];
    [vc02.tabBarItem setTitleTextAttributes:selectAttr forState:UIControlStateHighlighted];

[vc03.tabBarItem setTitleTextAttributes:attr forState:UIControlStateNormal];
    [vc03.tabBarItem setTitleTextAttributes:selectAttr forState:UIControlStateHighlighted];

原理是:

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
时间: 2024-10-07 18:20:06

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

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

统一设置app所有页面的“返回”按钮样式 如果想统一设置app所有页面的“返回”按钮样式,首先自定义WZNavigationController类继承UINavigationController类,然后在自定义类中重写pushViewController: animated:方法即可. //重写navC的pushVC方法,以便统一设置push进来的vc的左侧“返回”按钮 - (void)pushViewController:(UIViewController *)viewController a

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

一个中等规模的解决方案通常都会包含多个项目,其中一些项目产出静态库,一些产出动态库,一些用于单元测试,还有的产出最终的应用程序执行档.除此以外,根据项目的需求,还会使用一些第三方的库. 所以为解决方案设置一个合理的目录结构,不但可以使得代码管理更井井有条,项目成员之间也更容易相互配合,更重要的是能够使得最终应用程序的安装包制作,源代码打包发布和转移变得十分容易. 解决方案与项目: 从VC6之后VC系列就使用解决方案(Solution)来替代原来的工作空间,用于组织和管理多个相关的项目(Proje

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

http://blog.csdn.net/lcj_cjfykx/article/details/8632459 MS的这个IDE,实在庞杂得恐怖.从大学开始,我就一直用VC的各个版本写程序至今,细细想来,也仅仅是窥豹一斑,羞愧不已.但若仔细翻阅文档,又觉得时间花得不值,于是便一直凑活地用着. 前段时间负责搭建新项目的开发环境,兼一直在看Gamebryo的代码,从中借鉴了不少工程管理的方法.结合以前使用VC的经验,现总结下来与大家分享,希望能起到抛砖引玉的作用. 项目目录结构 VC用解决方案(so

Visual Studio解决方案的目录结构设置和管理

摘至:http://blog.csdn.net/lp310018931/article/details/47991759 首先,解决方案和项目文件夹包含关系(c++项目): VS解决方案和各个项目文件夹以及解决方案和各个项目对应的配置文件包含关系,假设新建一个项目ssyy,解决方案起名fangan,注意解决方案包括项 目,此时生成的最外层目录为fangan代表整个解决方案的内容都在这个文件夹内.在这个fangan文件夹内包含有fangan.sln的解决方案配置 文件和一个ssyy文件夹,ssyy

Servlet POST方法设置编码格式UTF-8(防止中文乱码,统一设置)

servlet的两个重要对象response和request分别代表返回客户的页面和接收来自客户的页面.这里面的字符内容往往涉及到不同的编码格式. 这里面编码格式的不同主要产生于如下几个地方: 1 js 2 jsp 3 Java source(编译器设置) 4 Web容器 5 HTML 上面每个地方都会有编码格式,为了支持中文字符,比较常见的做法就是都设置为UTF-8模式. 其中,response和request作为servlet对象的两个成员变量,其设置UTF-8是通过这两个对象的同名方法实现

统一设置导航栏与状态栏代码

统一设置导航栏与状态栏代码: #import "AppDelegate.h" #import "SZMMainTabBarController.h" @interface AppDelegate () @end @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launch

Linux环境下通过OpenLDAP实现用户的统一认证和管理

测试环境: OpenLDAP Server <-------------------------------------------->OpenLDAP Client ip:192.168.4.178                                                                 ip:192.168.4.177 Centos 6.4                                                         

JAVA学习绘图颜色及其笔画属性设置字体显示文字

package com.graphics; import java.awt.*; import java.awt.geom.Rectangle2D; import java.util.Date; import javax.swing.*; /** * * @author biexiansheng * */ public class DrawString extends JFrame{ private Shape rect;//矩形对象 private Font font;//字体对象 priva

iOS开发中设置UITextField的占位文字的颜色,和光标的颜色

在iOS开发中,对于很多初学者而言,很有可能碰到需要修改UITextField的占位文字的颜色,以及当UITextField成为第一响应者后光标的颜色,那么下面小编就介绍一下修改占位文字和光标的颜色.1:当你在使用Storyboard开发是,点击UITextField,在点击右上角的属性检测器,其实在这里面你是找不到有可以修改占位文字和光标颜色的属性的.2:那就进入UITextField的协议里面去查找,但是还是找不到,3:在进代理里面去查找,看看有没有通过代理方法,返回颜色并控制占位文字的方法