##iOS开发之快速统一项目风格UIAppearance

iOS开发之快速统一项目风格UIAppearance

UIAppearance是iOS5之后提供的一个比较强大的设置一些UI的全局效果的工具,这样就可以很方便的实现UI的自定义效果又能最简单的实现统一界面风格.

+ (instancetype)appearance;

注意点:

  • 使用appearance设置UI效果最好采用全局的设置,在所有界面初始化前开始设置,否则可能失效。
  • 只有部分的属性可以通过appearance.主要看属性后面是否有UI_APPEARANCE_SELECTOR

由图可以看到background属性后面有UI_APPEARANCE_SELECTOR,说明这样的属性就可以通过appearance设置,alpha后面就没有UI_APPEARANCE_SELECTOR,这样他就不可以通过appearance来设置.

UINavigationBar

    UINavigationBar *bar =[UINavigationBar appearance];
    //统一设置背景颜色
    [bar setBackgroundColor:[UIColor colorWithRed:arc4random()%256/255.0 green:arc4random()%256/255.0 blue:arc4random()%256/255.0 alpha:1]];
    //设置Tintcolor
     [bar setBarTintColor:[UIColor yellowColor]];

UITabBarItem

   // 通过appearance统一设置所有UITabBarItem的文字属性
    //设置默认字体
    NSMutableDictionary *attrs = [NSMutableDictionary dictionary];
    attrs[NSFontAttributeName] = [UIFont systemFontOfSize:11];
    //设置默认字体颜色
    attrs[NSForegroundColorAttributeName] = [UIColor grayColor];
    
    NSMutableDictionary *selectedAttrs = [NSMutableDictionary dictionary];
    //设置选中字体
    selectedAttrs[NSFontAttributeName] = attrs[NSFontAttributeName];
    //设置选中字体颜色
    selectedAttrs[NSForegroundColorAttributeName] = [UIColor orangeColor];
    
    //UITabBarItem的appearance
    UITabBarItem *item = [UITabBarItem appearance];
    [item setTitleTextAttributes:attrs forState:UIControlStateNormal];
    [item setTitleTextAttributes:selectedAttrs forState:UIControlStateSelected]

UITabbar

 UITabBar *tabBar = [UITabBar appearance];
  //设置背景图片
    [tabBar setBackgroundImage:[UIImage imageNamed:@"tabbar_bg"]];

以上列举的控件设置的方法只是部分可以通过appearance来设置的,还有很多的属性可以通过appearance来设置的,没有全部列举.并且并不是只有上面的3个控件才有appearance,还有很多的控件也有appearance方法.

你可能感兴趣的:(##iOS开发之快速统一项目风格UIAppearance)