IOS开发中设置导航栏主题

/**

 *  系统在第一次使用这个类的时候调用(1个类只会调用一次)

 */

+ (void)initialize

{

    // 设置导航栏主题

    UINavigationBar *navBar = [UINavigationBar appearance];

    // 设置背景图片

    NSString *bgName = nil;

    if (iOS7) { // 至少是iOS 7.0

        bgName = @"NavBar64";

    } else { // 非iOS7

        bgName = @"NavBar";

    }

    [navBar setBackgroundImage:[UIImage imageNamed:bgName] forBarMetrics:UIBarMetricsDefault];

    

    // 设置标题文字颜色

    NSMutableDictionary *attrs = [NSMutableDictionary dictionary];

    attrs[NSForegroundColorAttributeName] = [UIColor whiteColor];

    attrs[NSFontAttributeName] = [UIFont systemFontOfSize:16];

    [navBar setTitleTextAttributes:attrs];

    

    //设置BarButtonItem的主题

    UIBarButtonItem *item=[UIBarButtonItem appearance];

    //设置文字颜色

    NSMutableDictionary *itemAttrs=[NSMutableDictionary dictionary];

    itemAttrs[NSFontAttributeName]=[UIFont systemFontOfSize:14];

    itemAttrs[NSForegroundColorAttributeName]=[UIColor whiteColor];

    [item setTitleTextAttributes:itemAttrs forState:UIControlStateNormal];

    if (!iOS7) {

        //设置按钮背景

        

        [item setBackgroundImage:[UIImage imageNamed:@"NavButton"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

        [item setBackgroundImage:[UIImage imageNamed:@"NavButtonPressed"] forState:UIControlStateHighlighted barMetrics:UIBarMetricsDefault];

        

        //设置返回按钮的背景

        [item setBackButtonBackgroundImage:[UIImage imageNamed:@"NavButton"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

        [item setBackButtonBackgroundImage:[UIImage imageNamed:@"NavButtonPressed"] forState:UIControlStateHighlighted barMetrics:UIBarMetricsDefault];



    }

    else{

        navBar.tintColor=[UIColor whiteColor];

    }

   }

 

你可能感兴趣的:(ios开发)