AWLThemeManager 1.0.7

AWLThemeManager 1.0.7

测试已测试
Lang语言 Obj-CObjective C
许可证 MIT
Released上次发布2016年3月

Neo Chen 维护。



  • neo.chen

AWLThemeManager 是 iOS 的轻量级主题管理器。

功能

可以自定义什么

  1. 图像;
  2. 字体;
  3. 颜色;
  4. 支持的属性列表对象
  5. 包中的任何文件。

主题继承

在实际工作中,主题之间可能有些许差异。在传统方式中,您需要每个主题中保持相同的内容。如果您想更改值,您需要找到所有地方并更改它。从现在开始,如果您想那样做,您可以由于 AWLThemeManager 的继承而感到释放。您只需修改基本主题,然后从基本主题继承的所有主题将更改为新值。

如何使用

导入到您的项目中

  • 使用 Cocoapods

    pod 'AWLThemeManager'
    
  • 传统方式 只需将头文件和源文件添加到您的项目中

    • AWLThemeManager.h
    • AWLThemeManager.m

编写您自己的主题包

作为主题包首选使用包,尽管也可以使用文件夹。

包文件的结构如下图所示

Bundle

defaults.plist 是必需的。将其他文件添加到包的根目录。

defaults.plist

defaults.plist 用于设置主题的属性,包括颜色、字体等。

defaults.plist

基本信息

在 defaults.plist 中使用的默认密钥

  • AWL_THEME_NAME

    此密钥是必需的。它是主题的名称,用于标识主题,必须是唯一的。

  • AWL_BASE_THEME

    备选方案。如果您想将主题用作基本主题,则应添加此密钥。将基本主题的名称设置为该密钥。

定义颜色

颜色格式是:

defaults.plist

它将通过以下方法返回颜色:

[UIColor colorWithRed:[array[0] doubleValue]/255
                green:[array[1] doubleValue]/255
                 blue:[array[2] doubleValue]/255
                alpha:[array[3] doubleValue]];

请确保您已将正确的值设置到颜色中。

支持白色色彩空间格式。颜色现在可以指定在白色色彩空间中(例如 0.4,1)。

支持图案图像颜色。颜色现在可以指定为格式为 "@[ImageName],[Optional Alpha]" 的图案图像(例如 @Foo", "@Foo,0.5)。

支持十六进制格式。请使用以下十六进制格式指定颜色

#RGB
#ARGB
#RRGGBB
#AARRGGBB

支持引用。如果您想将相同的值设置为不同的颜色键,可以将一个颜色的键设置为另一个颜色,然后 AWLThemeManager 将找到该颜色的实际值。

通过引用修改 alpha 值。例如,如果引用了颜色 "COLOR1" = "255,0,0,1","COLOR2" = "COLOR1",您现在可以追加 ":[alpha]" 来修改其 alpha 值,例如 "COLOR2" = "COLOR1:0.2" 等同于 "255,0,0,0.2"。

定义字体

字体的格式为

defaults.plist

第一个是字体名称,第二个是字体大小。将使用以下方法返回使用的字体

[UIFont fontWithName:fontName size:fontSize]

如果您想使用系统字体,则应忽略第一个值,如下所示

,14       //systemFontOfSize
bold,14   //boldSystemFontOfSize
italic,14 //italicSystemFontOfSize

支持引用。与颜色相同。

定义图像

有两种方法可以将图像添加到主题包中

  1. 将图像文件放入包中;
  2. 添加一个 xcassets 文件,然后将图像文件放入 xcassets。

对于第二种方法,包需要在项目中 като реален цел OS X bundle с约定的_Target SDK iOS и валиден info.plist за Xcodeこんных включает compile .xcassets 文件daki. 请参阅项目中的 Assets(bundle)。示范项目。

支持引用。与颜色相同。如果默认.plist中找不到图像名,我们使用键作为图像名。

文件

现在您可以在主题中拥有“foo”->“bar”,同时在所有包中搜索类型为“dat”的“foo”,除了回退到主包。如果找不到键“foo”,则假定“foo”是文件名。

其他

您可以将任何内容添加到 defaults.plist。只需使用 objectiveForKey: 获取值。

如何在项目中使用

将包的绝对路径添加到 AWLThemeManager 对象中,然后设置您想要的当前主题。例如

NSString *bundlePath1 = [[NSBundle mainBundle] pathForResource:@"BaseSample" ofType:@"bundle"];
NSString *bundlePath2 = [[NSBundle mainBundle] pathForResource:@"Sample" ofType:@"bundle"];
AWLThemeManager *mgr = [[AWLThemeManager alloc] init];
[mgr addTheme:bundlePath1];
mgr.currentTheme = [mgr addTheme:bundlePath2];

然后您可以使用相同的 AWLThemeManager 对象如下访问资源。

UIImage *img = [mgr imageNamed:@"icon"];
titleLabel.textColor = [mgr colorForKey:@"Content_Text_Color"];
titleLabel.font = [mgr fontForKey:@"Content_Font"];