iOS 自定义各类bar的属性

  在iOS应用开发中,经常需要为导航栏和标签栏设置相同的主题,一个一个去设置的话,就太麻烦了,可以通过对应用中所有的导航栏和标签栏同意设置背景、字体等属性。

  如:创建一个继承自“UINavigationController”的公共父类,然后应用中所有的NavigationController都继承UINavigationController,通过在UINavigationController类中的类方法

initialize中对导航栏属性进行设置,就会对项目中所有的导航栏控制器起作用

  示例代码如下:

 1 + (void)initialize
 2 {
 3     
 4 #warning  可以通过设置UITabBar主题的方式来修改UITabBar中按钮的颜色
 5     UITabBar *tabBar = [UITabBar appearance];
 6     NSMutableDictionary *tabAttrs = [NSMutableDictionary dictionary];
 7     tabAttrs[UITextAttributeTextColor] = [UIColor orangeColor];
 8     [tabBar setTintColor:[UIColor orangeColor]];
 9     
10     // 1 设置UINavigationBar
11     UINavigationBar *navBar = [UINavigationBar appearance];
12 
13     
14     
15     //1.1 设置状态栏
16     [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleBlackOpaque;
17     
18     //1.2 设置背景图片
19         [navBar setBackgroundImage:[UIImage imageWithName:@"navigationbar_background"] forBarMetrics:UIBarMetricsDefault];
20   
21     
22     //1.3.设置字体
23     NSMutableDictionary *attrs = [NSMutableDictionary dictionary];
24     attrs[UITextAttributeTextColor] = [UIColor blackColor];
25     attrs[UITextAttributeTextShadowOffset] = [NSValue valueWithCGSize:CGSizeMake(0, 0)];
26     attrs[UITextAttributeFont] = [UIFont systemFontOfSize:20];
27 
28     [navBar setTitleTextAttributes:attrs];
29     
30     //2 设置导航条按钮主题
31     UIBarButtonItem *barItem = [UIBarButtonItem appearance];
32     //2.1 设置背景图
33     [barItem setBackButtonBackgroundImage:[UIImage imageWithName:@"navigationbar_button_background"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
34     [barItem setBackButtonBackgroundImage:[UIImage imageWithName:@"navigationbar_button_background_pushed"] forState:UIControlStateHighlighted barMetrics:UIBarMetricsDefault];
35     [barItem setBackButtonBackgroundImage:[UIImage imageWithName:@"navigationbar_button_background_disable"] forState:UIControlStateDisabled barMetrics:UIBarMetricsDefault];
36     //2.2 设置字体属性
37     NSMutableDictionary *itemAttrs = [NSMutableDictionary dictionary];
38 
39     itemAttrs[UITextAttributeTextColor] = iOS7 ? [UIColor orangeColor] : [UIColor blackColor];
40     itemAttrs[UITextAttributeTextShadowOffset] = [NSValue valueWithCGSize:CGSizeMake(0, 0)];
41     itemAttrs[UITextAttributeFont] = [UIFont systemFontOfSize:14];
42     [barItem setTitleTextAttributes:itemAttrs forState:UIControlStateNormal];
43 }

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。