zoukankan      html  css  js  c++  java
  • 导航栏 “UI_APPEARANCE_SELECTOR”方法的使用

    导航栏有一个方法:

    - (void)setBackgroundImage:(nullable UIImage *)backgroundImage forBarMetrics:(UIBarMetrics)barMetrics NS_AVAILABLE_IOS(5_0) UI_APPEARANCE_SELECTOR;

    这个方法有两种使用方式

    第一种:

    [self.navigationBar setBackgroundImage:[UIImage imageNamed:@"navigationbarBackgroundWhite"] forBarMetrics:UIBarMetricsDefault];

    第二种:

     UINavigationBar *bar = [UINavigationBar appearance];
        [bar setBackgroundImage:[UIImage imageNamed:@"navigationbarBackgroundWhite"] forBarMetrics:UIBarMetricsDefault];

    第二种使用方式不管你是使用的哪个 导航栏控制器创建的界面,都会显示 你设置的这一个图片背景。

    如果只是想要在“WYNavigationController.m”中实现这个背景图片,其他的导航栏控制器都不实现的话:

    添加一句:

     // 当导航栏用在XMGNavigationController中, appearance设置才会生效
        UINavigationBar *bar = [UINavigationBar appearanceWhenContainedIn:[self class], nil];
        [bar setBackgroundImage:[UIImage imageNamed:@"navigationbarBackgroundWhite"] forBarMetrics:UIBarMetricsDefault];

    这样就OK.

    这样运行后,会发现 四个一级控制器都会创建一遍,如果只想让控制器创建一遍,就使用

    /**
     * 当第一次使用这个类的时候会调用一次
     */
    + (void)initialize
    {
        // 当导航栏用在XMGNavigationController中, appearance设置才会生效
    //    UINavigationBar *bar = [UINavigationBar appearanceWhenContainedIn:[self class], nil];
        UINavigationBar *bar = [UINavigationBar appearance];
        [bar setBackgroundImage:[UIImage imageNamed:@"navigationbarBackgroundWhite"] forBarMetrics:UIBarMetricsDefault];
    }
  • 相关阅读:
    在C#中,不安装Oracle客户端如何连接Oracle数据库
    敏捷宣言(四) 猪和鸡的故事
    敏捷宣言(六) 单单有敏捷就够了吗?
    敏捷宣言(五) 看板是另外一种敏捷实践
    敏捷宣言(七) 软件系统
    小白知识摘录__进程和线程
    Linux系统修改/etc/sysconfig/i18n文件,桌面无法正常显示
    小白知识摘录__环境变量
    hive表查询中文显示乱码
    3月10日晚
  • 原文地址:https://www.cnblogs.com/iOS363536404/p/5627228.html
Copyright © 2011-2022 走看看