• iOS 统一配置


    1 、统一设置nav标题样式:

    - (void)_setNavigationTitle {
        NSDictionary *navigationParams = @{NSForegroundColorAttributeName:[UIColor whiteColor],NSFontAttributeName:[UIFont fontWithName:@"FZLBJW--GB1-0" size:18]};
        [[UINavigationBar appearance]setTitleTextAttributes:navigationParams];
    }

    2 、统一设置nav相关颜色:

    - (void)_setNavigationColor {
        [[UINavigationBar appearance] setBarTintColor:[UIColor whiteColor]];
        [[UINavigationBar appearance] setTitleTextAttributes:@{NSFontAttributeName:[UIFont fontWithName:@"FZLBJW--GB1-0" size:18],NSForegroundColorAttributeName:[UIColor blackColor]}];
        [[UINavigationBar appearance] setTintColor:[UIColor blackColor]];
    }

    3 、统一设置返回按钮:

    - (void)_setNavigationBackItem {
        UINavigationBar * navigationBar = [UINavigationBar appearance];
        UIImage *image = [UIImage imageNamed:@"back"];
        image = [image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
        navigationBar.backIndicatorImage = image;
        navigationBar.backIndicatorTransitionMaskImage = image;
        UIBarButtonItem *buttonItem = [UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], nil];
        UIOffset offset;
        offset.horizontal = - 500;
        offset.vertical =  0;//不为0在iOS11会造成视图错乱
        [buttonItem setBackButtonTitlePositionAdjustment:offset forBarMetrics:UIBarMetricsDefault];
    }

    4 、统一设置tableViewCell的分割线:

    - (void)_setTableViewAppearace {
        [[UITableView appearance]setTableFooterView:[UIView new]];
        [[UITableView appearance]setSeparatorInset:UIEdgeInsetsZero];
    }

    5 、统一设置SegmentedControl

        UISegmentedControl *appearance = [UISegmentedControl appearance];  
          
        //Segmenteg正常背景  
        [appearance setBackgroundImage:[UIImage imageNamed:@"Segmente.png"]  
                              forState:UIControlStateNormal  
                            barMetrics:UIBarMetricsDefault];  
          
        //Segmente选中背景  
        [appearance setBackgroundImage:[UIImage imageNamed:@"Segmente_a.png"]  
                              forState:UIControlStateSelected  
                            barMetrics:UIBarMetricsDefault];  
          
        //Segmente左右都未选中时的分割线  
        //BarMetrics表示navigation bar的状态,UIBarMetricsDefault 表示portrait状态(44pixel height),UIBarMetricsLandscapePhone 表示landscape状态(32pixel height)  
          
        [appearance setDividerImage:[UIImage imageNamed:@"Segmente_line.png"]  
                forLeftSegmentState:UIControlStateNormal  
                  rightSegmentState:UIControlStateNormal  
                         barMetrics:UIBarMetricsDefault];  
          
        [appearance setDividerImage:[UIImage imageNamed:@"Segmente_line.png"]  
                forLeftSegmentState:UIControlStateSelected  
                  rightSegmentState:UIControlStateNormal  
                         barMetrics:UIBarMetricsDefault];  
          
        [appearance setDividerImage:[UIImage imageNamed:@"Segmente_line.png"]  
                forLeftSegmentState:UIControlStateNormal  
                  rightSegmentState:UIControlStateSelected  
                         barMetrics:UIBarMetricsDefault];  
          
        //字体  
        NSDictionary *textAttributes1 = @{UITextAttributeFont: [UIFont systemFontOfSize:18],  
                                         UITextAttributeTextColor: [UIColor blueColor],  
                                         UITextAttributeTextShadowColor: [UIColor whiteColor],  
                                         UITextAttributeTextShadowOffset: [NSValue valueWithCGSize:CGSizeMake(1, 1)]};  
          
        [appearance setTitleTextAttributes:textAttributes1 forState:1];  
          
        NSDictionary *textAttributes2 = @{UITextAttributeFont: [UIFont systemFontOfSize:18],  
                                         UITextAttributeTextColor: [UIColor whiteColor],  
                                         UITextAttributeTextShadowColor: [UIColor blackColor],  
                                         UITextAttributeTextShadowOffset: [NSValue valueWithCGSize:CGSizeMake(1, 1)]};  
          
        [appearance setTitleTextAttributes:textAttributes2 forState:0]; 

    6 、统一设置BarButton

        //修改导航条上的UIBarButtonItem  
        UIBarButtonItem *appearance = [UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], nil nil];  
      
        //设置导航栏的字体包括backBarButton和leftBarButton,rightBarButton的字体  
        NSDictionary *textAttributes = @{UITextAttributeFont: [UIFont systemFontOfSize:18],  
                                         UITextAttributeTextColor: [UIColor blueColor],  
                                         UITextAttributeTextShadowColor: [UIColor whiteColor],  
                                         UITextAttributeTextShadowOffset: [NSValue valueWithCGSize:CGSizeMake(1, 1)]};  
          
        [appearance setTitleTextAttributes:textAttributes forState:1];//forState为0时为下正常状态,为1时为点击状态。  
      
          
        //修改leftBarButton,rightBarButton背景效果  
        [appearance setBackgroundImage:[UIImage imageNamed:@"navBarButton.png"]  
                              forState:UIControlStateNormal  
                                 style:UIBarButtonItemStyleBordered  
                            barMetrics:UIBarMetricsDefault];  
          
        [appearance setBackgroundImage:[UIImage imageNamed:@"navBarButton_a.png"]  
                              forState:UIControlStateHighlighted  
                                 style:UIBarButtonItemStyleBordered  
                            barMetrics:UIBarMetricsDefault];  
      
          
        //backBarButton需要单独设置背景效果。只能在ios6.0以后才能用  
        [appearance setBackButtonBackgroundImage:[UIImage imageNamed:@"nav_bg.png"]  
                                        forState:0  
                                      barMetrics:UIBarMetricsDefault];  
          
        [appearance setBackButtonBackgroundImage:[UIImage imageNamed:@"work.png"]  
                                        forState:1  
                                      barMetrics:UIBarMetricsDefault];  
          
        [appearance setBackButtonTitlePositionAdjustment:UIOffsetMake(2, -1)  
                                           forBarMetrics:UIBarMetricsDefault]; 

    7 、统一设置工具栏:

     UIToolbar *appearance = [UIToolbar appearance];  
        //样式和背景二选一即可,看需求了  
        //样式(黑色半透明,不透明等)设置  
        [appearance setBarStyle:UIBarStyleBlackTranslucent];  
        //背景设置  
        [appearance setBackgroundImage:[UIImage imageNamed:@"toolbarBg.png"]  
                    forToolbarPosition:UIToolbarPositionAny  
                            barMetrics:UIBarMetricsDefault];  

     8 、统一设置系统View的tintColor:

    关于tintColor的介绍请移步:https://www.jianshu.com/p/4bcaf6349133

            UIView.appearance().tintColor = UIColor(named: "Deep Carmine Pink")

    你会发现系统默认的颜色从蓝色变为了 Deep Carmine Pink!(backBarItem也是红色只是被覆盖层改变了)

  • 相关阅读:
    Scala_模式匹配
    Scala_特质
    Scala_继承
    Scala_对象
    Scala_类
    Scala_关键字
    Scala_数据结构
    Scala_方法、函数、柯里化
    Scala_控制结构
    Scala_基本语法
  • 原文地址:https://www.cnblogs.com/lidarui/p/8484022.html
Copyright © 2020-2023  润新知