zoukankan      html  css  js  c++  java
  • UI基础

    如果导航控制器的BarButtonItem属性是一致的,可以重写initialize方法用来设置主题

    //再ViewDidload执行前只执行一次
    +(void)initialize
    {
        //创建的UIBarButtonItem的属性会从这里获取
        UIBarButtonItem *appearance = [UIBarButtonItem appearance];
        //普通情况下
        NSMutableDictionary *nor = [NSMutableDictionary dictionary];
        nor[NSForegroundColorAttributeName] = [UIColor orangeColor];
        nor[NSFontAttributeName] = [UIFont systemFontOfSize:15];
        [appearance setTitleTextAttributes:nor forState:UIControlStateNormal];
        //高亮情况下
        NSMutableDictionary *high = [NSMutableDictionary dictionaryWithDictionary:nor];
        high[NSForegroundColorAttributeName] = [UIColor greenColor];
        [appearance setTitleTextAttributes:high forState:UIControlStateHighlighted];
        //不可以点击情况下
        NSMutableDictionary *disable = [NSMutableDictionary dictionaryWithDictionary:nor];
        disable[NSForegroundColorAttributeName] = [UIColor grayColor];
        [appearance setTitleTextAttributes:disable forState:UIControlStateDisabled];
        /**设置背景**/
        // 技巧: 为了让某个按钮的背景消失, 可以设置一张完全透明的背景图片
    //    [appearance setBackgroundImage:[UIImage imageNamed:@"navigationbar_button_background"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
    }
    

    也可以一次性设置leftBarButtonItem和rightBarButtonItem

    重写

    - (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated;

    -(void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated
    {
        /*这里传进来的是navController,
         self.viewControllers.count代表nav栈里控制器的数量,如果大于0,那就不是栈低控制器
         也就不是最开始看到的四个
         */
        if(self.viewControllers.count > 0 ){
            viewController.hidesBottomBarWhenPushed = YES;
            viewController.navigationItem.leftBarButtonItem = [UIBarButtonItem initWithImage:@"navigationbar_back" HighImage:@"navigationbar_back_highlighted" action:@selector(back) target:self];
            viewController.navigationItem.rightBarButtonItem = [UIBarButtonItem initWithImage:@"navigationbar_more" HighImage:@"navigationbar_more_highlighted" action:@selector(more) target:self];
        }
        [super pushViewController:viewController animated:YES];
    }
    

      

  • 相关阅读:
    error: gnu/stubs32.h: 没有那个文件或目录
    vim配色方案
    Linux文件合并、去除重复
    Debian网络安装中的驱动问题
    汽油、柴油标号
    Debian SSH登录慢的解决办法
    Debian下的时间和时区问题
    解决vim、gvim在windows下中文乱码
    使用本地Debian ISO镜像作为网络安装源
    Debian如何永久添加静态路由
  • 原文地址:https://www.cnblogs.com/xj76149095/p/5350508.html
Copyright © 2011-2022 走看看