导航栏 “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];
}

 

posted on 2016-06-29 16:07  iOS学习-文  阅读(869)  评论(0编辑  收藏  举报

导航