zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    PAT Advanced 1067 Sort with Swap(0, i) (25分)
    PAT Advanced 1048 Find Coins (25分)
    PAT Advanced 1060 Are They Equal (25分)
    PAT Advanced 1088 Rational Arithmetic (20分)
    PAT Advanced 1032 Sharing (25分)
    Linux的at命令
    Sublime Text3使用指南
    IntelliJ IDEA创建第一个Groovy工程
    Sublime Text3 安装ftp插件
    Sublime Text3配置Groovy运行环境
  • 原文地址:https://www.cnblogs.com/pretty-guy/p/4083604.html
Copyright © 2011-2022 走看看