陈斌彬的技术博客

Stay foolish,stay hungry

通过appearance设置app主题

参考资料

oschina源码

http://git.oschina.net/oschina/iphone-app

TintColor解析

http://blog.kingiol.com/blog/2014/01/09/ios7-day-by-day-day6-tint-color/

oschina源码分析

//再plist文件中设置View controller-based status bar appearance 为 NO才能起效
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

//导航条上标题的颜色
NSDictionary *navbarTitleTextAttributes = @{NSForegroundColorAttributeName:[UIColor whiteColor]};
[[UINavigationBar appearance] setTitleTextAttributes:navbarTitleTextAttributes];

//导航条上UIBarButtonItem颜色
[[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];

//TabBar选中图标的颜色,默认是蓝色
[[UITabBar appearance] setTintColor:[UIColor colorWithHex:0x15A230]];
//TabBarItem选中的颜色
[[UITabBarItem appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor colorWithHex:0x15A230]} forState:UIControlStateSelected];

//导航条的背景颜色
[[UINavigationBar appearance] setBarTintColor:[UIColor navigationbarColor]];

//TabBar的背景颜色
[[UITabBar appearance] setBarTintColor:[UIColor titleBarColor]];

[UISearchBar appearance].tintColor = [UIColor redColor];
//当某个class被包含在另外一个class内时,才修改外观。
[[UITextField appearanceWhenContainedIn:[UISearchBar class], nil] setCornerRadius:14.0];
[[UITextField appearanceWhenContainedIn:[UISearchBar class], nil] setAlpha:0.6];


UIPageControl *pageControl = [UIPageControl appearance];
pageControl.pageIndicatorTintColor = [UIColor colorWithHex:0xDCDCDC];
pageControl.currentPageIndicatorTintColor = [UIColor grayColor];

[[UITextField appearance] setTintColor:[UIColor nameColor]];
[[UITextView appearance]  setTintColor:[UIColor nameColor]];