通过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]];
posted @ 2016-01-19 19:12  LDSmallCat  阅读(264)  评论(0编辑  收藏  举报