UIAppearance

通过UIAppearance,我们可以轻松的统一管理app界面的某些外观属性,以UINavigationBar为例有如下两个方法:

  1. [UINavigationBar appearance]
  2. [UINavigationBar appearanceWhenContainedIn:(nullable Class<UIAppearanceContainer>), ..., nil]
  • 方法一是拿到应用中所有出现的UINavigationBar对象
  • 方法二是拿到某个某个类中出现的UINavigationBar对象

示例代码,搭配富文本属性统一设置外观:

+(void)load
{
    UINavigationBar *bar = [UINavigationBar appearanceWhenContainedIn:self, nil];

    //统一设置当前自定义导航控制器类的导航条标题富文本
    NSMutableDictionary *attr = [NSMutableDictionary dictionary];
    attr[NSFontAttributeName] = [UIFont boldSystemFontOfSize:20];
    bar.titleTextAttributes = attr;
    //统一设置导航条背景图片
    [bar setBackgroundImage:[UIImage imageNamed:@"navigationbarBackgroundWhite"] forBarMetrics:UIBarMetricsDefault];
}

:使用方法一相对比较“暴力”,比如当调用弹出系统相册界面,让用户选择某张照片之类的功能时,会发现系统自带界面上的相关类也一同被修改了。因此使用哪个方法实现效果得根据具体需求而决定了。

posted on 2016-01-13 23:34  夏鲁鲁  阅读(165)  评论(0编辑  收藏  举报