
直接设置每个tabBarItem对象
// 普通状态下的文字属性 NSMutableDictionary *normalAttrs = [NSMutableDictionary dictionary]; normalAttrs[NSFontAttributeName] = [UIFont systemFontOfSize:14]; normalAttrs[NSForegroundColorAttributeName] = [UIColor grayColor]; [vc.tabBarItem setTitleTextAttributes:normalAttrs forState:UIControlStateNormal]; // 选中状态下的文字属性 NSMutableDictionary *selectedAttrs = [NSMutableDictionary dictionary]; selectedAttrs[NSForegroundColorAttributeName] = [UIColor darkGrayColor]; [vc.tabBarItem setTitleTextAttributes:selectedAttrs forState:UIControlStateSelected];
请注意:
// 字典中用到的key 1.iOS7之前(在UIStringDrawing.h中可以找到) - 比如UITextAttributeFont\UITextAttributeTextColor - 规律:UITextAttributeXXX 2.iOS7开始(在NSAttributedString.h中可以找到) - 比如NSFontAttributeName\NSForegroundColorAttributeName - 规律:NSXXXAttributeName
通过UITabBarItem的外观对象统一设置
/**** 设置所有UITabBarItem的文字属性 ****/ UITabBarItem *item = [UITabBarItem appearance]; // 普通状态下的文字属性 NSMutableDictionary *normalAttrs = [NSMutableDictionary dictionary]; normalAttrs[NSFontAttributeName] = [UIFont systemFontOfSize:14]; normalAttrs[NSForegroundColorAttributeName] = [UIColor grayColor]; [item setTitleTextAttributes:normalAttrs forState:UIControlStateNormal]; // 选中状态下的文字属性 NSMutableDictionary *selectedAttrs = [NSMutableDictionary dictionary]; selectedAttrs[NSForegroundColorAttributeName] = [UIColor darkGrayColor]; [item setTitleTextAttributes:normalAttrs forState:UIControlStateSelected];
3.3UIAppearance
只要一个类坚持UIAppearance,它就可以得到全局外观. UIview可以显示所有外观. 我们可以获得所有的tabBarItem外观标识符. 但是,通常不需要以下操作,因为以下方法可以全局获取. 在开发时,所有tabBarItem外观徽标通常都负责我们自己的开发,因此建议使用下面的第二种方法仅获取以下内容的tabBarItem外观徽标: 当前课程.

//获取全局的tabBarItem外观标识 UITabBarItem *item = [UITabBarItem appearance];
//获取当前这个类下面的所有tabBarItem UITabBarItem *item = [UITabBarItem appearanceWhenContainedIn:self, nil]
外观使用注意事项: 必须在显示控件之前将其设置为有用,通常将其放置在+(void)加载方法中,而不是+(void)初始化中,因为+(void)加载方法将只能被调用一次,+(void)初始化可能被调用多次,您需要判断何时使用它.
load方法: 在加载类时调用,何时加载类?当程序一起移动时,将调用load方法. Initialize方法: 初始化类,并在首次使用该类或子类时调用viewdidload方法: 在首次显示viewcontroller时加载该方法. viewController是延迟加载的,即viewdidLoad仅在要显示时才加载,但是只有tabbarcontroller在创建控制器时才加载viewdidLoad.
PCH文件(Precompile Prefix Header File),即预编译的头文件,它的作用是方便您同时导入多个文件中使用的头文件ios框架,宏或URL地址(全局使用),可以有效地帮助您您可以节省时间并提高开发效率. 但是,由于Xcode 5,默认情况下不再提供此文件,如果要继续使用,则需要手动创建和配置. 至于为什么默认不再提供它,则可能是由于考虑了提高编译效率. 毕竟,预编译还会增加构建时间.
有关如何创建和配置PCH文件的详细信息,请参阅: 在iOS中创建和配置Pch文件
编写PCH文件时需要注意以下几点:
#ifndef PrefixHeader_pch #define PrefixHeader_pch /*** 如果希望某些内容能拷贝到任何源代码文件(OC\C\C++等), 那么就不要写在#ifdef __OBJC__和#endif之间 ***/ /***** 在#ifdef __OBJC__和#endif之间的内容, 只会拷贝到OC源代码文件中, 不会拷贝到其他语言的源代码文件中 *****/ #ifdef __OBJC__ #endif /***** 在#ifdef __OBJC__和#endif之间的内容, 只会拷贝到OC源代码文件中, 不会拷贝到其他语言的源代码文件中 *****/ #endif
除了该类中的#define定义外,在iOS开发过程中,我们还可以在Build Setting中配置宏,而在Project中找不到Build Setting中定义的宏,也就是说,我们将显示一个[?]通过[command] + [mouse click]],无法跳转到相应的定义位置,这一次可以在Build Setting中进行配置,例如,我们经常看到的宏DEBUG在Build Setting中进行了配置

注意: 在“构建设置”中配置的宏的名称不能全部为小写字母. 如果宏的名称全部为小写,则会出现以下错误
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-181949-2.html
家里米
是该出手了