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];
    }
  • 相关阅读:
    Linux中的mv命令详解
    ASP.NET问题处理---targetFramwork=‘4.0’错误
    Android----二维码开发
    android--HttpURLConnection(转载)
    SQL server 跨库插入数据
    AndroidStudio中 R文件缺失的办法
    ASP.NET程序如何更新发布
    Android切换页面--setContentView
    Android----service
    Android开发必备:颜色选择
  • 原文地址:https://www.cnblogs.com/iOS363536404/p/5627228.html
Copyright © 2011-2022 走看看