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方法.