2、下面直接上代码,设置TabBarItem的文字属性

贯彻如下效果的渐变

从iOS9开始的周边报错

Application windows are expected to have a root view controller at the end of application launch
  • 从iOS9开始,
    程序启动完毕那一刻体现出来的窗口必须要设置根控制器

从iOS9始发的大面积报错

Application windows are expected to have a root view controller at the end of application launch
  • 从iOS9开始,
    程序启动完毕那一刻突显出来的窗口必须要设置根控制器

效果图.png

应用程序的图标

  • 旧项目中的图标只要顺应1个条件即可
    • 图表名叫做Icon.png

应用程序的图标

  • 旧项目中的图标只要顺应1个标准即可
    • 图片名叫做Icon.png

1、第一步
先用数码测色计测量最两端的颜色值,记录下来。(或者您可以直接问UI小妹妹要转手)。这是的测量的数值R67、G134、B219;R91、G180、B226

稍微图片凸显出来会自行渲染成红色

些微图片显示出来会活动渲染成灰色

2、下面直接上代码

比如

  • 安装tabBarItem的入选图片

vc.tabBarItem.selectedImage = image;
  • 设置UIButtonTypeSystem样式按钮的image时

UIButton *btn = [UIButton buttonWithType:UIButtonTypeSystem];
[btn setImage:image forState:UIControlStateNormal];

比如

  • 安装tabBarItem的当选图片

vc.tabBarItem.selectedImage = image;
  • 设置UIButtonTypeSystem样式按钮的image时

UIButton *btn = [UIButton buttonWithType:UIButtonTypeSystem];
[btn setImage:image forState:UIControlStateNormal];
- (void)viewDidLoad
 {
    [super viewDidLoad];

    //1、创建view
    UIView *bgNav = [[UIView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, 64)];
    //2、设置view的颜色是渐变色
    CAGradientLayer *layer = [CAGradientLayer layer];
    layer.colors = [NSArray
                       arrayWithObjects:(id)[UIColor colorWithRed:47/255.0 green:134/255.0 blue:219/255.0 alpha:1].CGColor,
                       (id)[UIColor colorWithRed:91/255.0 green:180/255.0 blue:226/255.0 alpha:1].CGColor, nil];
    layer.startPoint = CGPointMake(0, 0);
    layer.endPoint = CGPointMake(1, 0);
    layer.locations = @[@0.3,@0.7];
    layer.frame = bgNav.bounds;
    [bgNav.layer addSublayer:layer];
    //3、把view变成图片
    UIGraphicsBeginImageContext(bgNav.bounds.size);
    [bgNav.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *navImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    //4、设置导航的背景色
    self.navigationController.navigationBar.barTintColor = [UIColor colorWithPatternImage:navImage];
}

缓解方案

  • 双重暴发一张不会进展渲染的图样

// 加载图片
UIImage *tempImage = [UIImage imageNamed:@"tabBar_essence_click_icon"];
// 产生一张不会进行自动渲染的图片
UIImage *selectedImage = [tempImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
vc.tabBarItem.selectedImage = selectedImage;
  • 直接在xcassets文件中安排
![](https://upload-images.jianshu.io/upload_images/2354456-abb0bc9bf5a69367.png)

Snip20151105\_1.png

缓解方案

  • 重复发出一张不会进展渲染的图样

// 加载图片
UIImage *tempImage = [UIImage imageNamed:@"tabBar_essence_click_icon"];
// 产生一张不会进行自动渲染的图片
UIImage *selectedImage = [tempImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
vc.tabBarItem.selectedImage = selectedImage;
  • 一贯在xcassets文件中配备

图片 1

1.png

3、结果如下

设置TabBarItem的文字属性

  • 直白设置每一个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的appearance对象统一设置

/**** 设置所有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];

安装TabBarItem的文字属性

  • 从来设置每一个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的appearance对象统一设置

/**** 设置所有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];

代码运行结果..png

花色的图纸资源

类型的图片资源

参考文档
http://www.jianshu.com/p/ac603687bd50

颜色相关的一对知识

  • 水彩的骨干构成
    • 一种颜色由N个颜色通道组成
  • 颜色通道
    • 1个颜色通道占据8bit
    • 1个颜色通道的取值范围
      • 10进制 : [0, 255]
      • 16进制 : [00, ff];
    • 广大的水彩通道
      • 红色 red R
      • 绿色 green G
      • 蓝色 blue B
      • 透明度 alpha A
    • R\G\B一样的是紫色
  • 颜色的项目
    • 24bit颜色
      • 由R\G\B组成的颜料
      • 科普的代表形式
        • 10进制(仅仅是用在CSS)
          • 红色 : rgb(255,0,0)
          • 绿色 : rgb(0,255,0)
          • 蓝色 : rgb(0,0,255)
          • 黄色 : rgb(255,255,0)
          • 黑色 : rgb(0,0,0)
          • 白色 : rgb(255,255,255)
          • 灰色 : rgb(80,80,80)
        • 16进制(可以用在CSS\android)
          • 红色 : #ff0000 #f00
          • 绿色 : #00ff00 #0f0
          • 蓝色 : #0000ff #00f
          • 黄色 : #ffff00 #ff0
          • 黑色 : #000000 #000
          • 白色 : #ffffff #fff
          • 灰色 : #979797
    • 32bit颜色
      • 由R\G\B\A组成的水彩
      • 广泛的表示形式
        • 10进制(仅仅是用在CSS)
          • 红色 : rgba(255,0,0,255)
          • 绿色 : rgba(0,255,0,255)
          • 蓝色 : rgba(0,0,255,255)
          • 黄色 : rgba(255,255,0,255)
          • 黑色 : rgba(0,0,0,255)
          • 白色 : rgba(255,255,255,255)
        • 16进制(#AARRGGBB, 仅仅是用在android)
          • 红色 : #ffff0000
          • 绿色 : #ff00ff00
          • 蓝色 : #ff0000ff
          • 黄色 : #ffffff00
          • 黑色 : #ff000000
          • 白色 : #ffffffff

颜色相关的一些文化

  • 颜色的核心构成
    • 一种颜色由N个颜色通道组成
  • 颜色通道
    • 1个颜色通道占据8bit
    • 1个颜色通道的取值范围
      • 10进制 : [0, 255]
      • 16进制 : [00, ff];
    • 普遍的颜料通道
      • 红色 red R
      • 绿色 green G
      • 蓝色 blue B
      • 透明度 alpha A
    • R\G\B一样的是肉色
  • 水彩的档次
    • 24bit颜色
      • 由R\G\B组成的颜料
      • 广大的象征模式
        • 10进制(仅仅是用在CSS)
          • 红色 : rgb(255,0,0)
          • 绿色 : rgb(0,255,0)
          • 蓝色 : rgb(0,0,255)
          • 黄色 : rgb(255,255,0)
          • 黑色 : rgb(0,0,0)
          • 白色 : rgb(255,255,255)
          • 灰色 : rgb(80,80,80)
        • 16进制(可以用在CSS\android)
          • 红色 : #ff0000 #f00
          • 绿色 : #00ff00 #0f0
          • 蓝色 : #0000ff #00f
          • 黄色 : #ffff00 #ff0
          • 黑色 : #000000 #000
          • 白色 : #ffffff #fff
          • 灰色 : #979797
    • 32bit颜色
      • 由R\G\B\A组成的颜色
      • 科普的表示形式
        • 10进制(仅仅是用在CSS)
          • 红色 : rgba(255,0,0,255)
          • 绿色 : rgba(0,255,0,255)
          • 蓝色 : rgba(0,0,255,255)
          • 黄色 : rgba(255,255,0,255)
          • 黑色 : rgba(0,0,0,255)
          • 白色 : rgba(255,255,255,255)
        • 16进制(#AARRGGBB, 仅仅是用在android)
          • 红色 : #ffff0000
          • 绿色 : #ff00ff00
          • 蓝色 : #ff0000ff
          • 黄色 : #ffffff00
          • 黑色 : #ff000000
          • 白色 : #ffffffff

end:小编是很认真的写文哦,假设小编的文对您有用,一定要点“喜欢”哦!倘若有题目欢迎评论

PCH文件或者引发的错误

图片 2

Snip20151105_8.png

  • 釜底抽薪方案

#ifndef PrefixHeader_pch
#define PrefixHeader_pch

/*** 如果希望某些内容能拷贝到任何源代码文件(OC\C\C++等), 那么就不要写在#ifdef __OBJC__和#endif之间 ***/


/***** 在#ifdef __OBJC__和#endif之间的内容, 只会拷贝到OC源代码文件中, 不会拷贝到其他语言的源代码文件中 *****/
#ifdef __OBJC__


#endif
/***** 在#ifdef __OBJC__和#endif之间的内容, 只会拷贝到OC源代码文件中, 不会拷贝到其他语言的源代码文件中 *****/


#endif

PCH文件或者引发的荒唐

图片 3

图2

  • 釜底抽薪方案

#ifndef PrefixHeader_pch
#define PrefixHeader_pch

/*** 如果希望某些内容能拷贝到任何源代码文件(OC\C\C++等), 那么就不要写在#ifdef __OBJC__和#endif之间 ***/


/***** 在#ifdef __OBJC__和#endif之间的内容, 只会拷贝到OC源代码文件中, 不会拷贝到其他语言的源代码文件中 *****/
#ifdef __OBJC__


#endif
/***** 在#ifdef __OBJC__和#endif之间的内容, 只会拷贝到OC源代码文件中, 不会拷贝到其他语言的源代码文件中 *****/


#endif

在Build Setting中配置宏

  • 假定项目中多少宏找不到, 可能是布局在Build Setting中

图片 4

Snip20151105_9.png

  • 注意点:宏的名字不可以一体是小写字母

  • 假使宏的名字全部是小写, 会现身以下错误

图片 5

Snip20151105_10.png

在Build Setting中配置宏

  • 若果项目中约略宏找不到, 可能是布置在Build Setting中

图片 6

图3.png

  • 注意点:宏的名字无法全部是小写字母

  • 假若宏的名字全体是小写, 会出现以下错误

![](https://upload-images.jianshu.io/upload_images/3022339-acf0480fe189397a.png)

图4.png