美文网首页
iOS 基于DKNightVerson主题 换肤,api来自QQ

iOS 基于DKNightVerson主题 换肤,api来自QQ

作者: 携一两本单色书来 | 来源:发表于2019-01-30 16:20 被阅读6次

先来一张效果图

img1.gif

DKNightVerson 使用说明

DKNightVerson是一款非常实用的换肤框架,大致原理就是通过类扩展给View类添加了一些属性,DK_manager是记录当前日夜间模式的单例,pickers是用来记录一个View已实现的主题功能(dk_textClolrPIcker,dk_backgroundColor 等),当修改主题通知发送后,遍历pickers就刷新了已实现的方法

DKNightVerson作者的说明

DKNight.png

色值的传递是通过一个block,block传入参数就是当前的主题模式,

typedef UIColor *(^DKColorPicker)(DKThemeVersion *themeVersion);

如果我们要实现换色的功能,只要在以下方法传一个DKCOlorPicker就可以了

 self.view.dk_backgroundColorPicker = 

HPColorTable 就是将本地的plist表代替了DKColorTable.text,修改为我们需要传过去的颜色,在传出去就OK了,这样就实现了主题颜色的修改,注意key值一定要和plist表里的对应

主要实现

HPColorTable

颜色和图片管理的单例,当前主题是存在NSUserDefaults 中,
reloadColorTable 是修改图片和颜色表的路径

用来回调颜色
- (DKColorPicker)pickerWithKey:(NSString *)key
用来回调图片
+ (DKImagePicker)imgPickerWithKey:(NSString *)key
HPThemeManager

主题管理类,包含删除,下载,解压,切换,存储等功能

下载及存储目录

屏幕快照 2019-01-30 下午3.48.44.png

下载使用的是

 NSData *data = [NSData dataWithContentsOfURL:theme.themeZipUrl options:0 error:&error];

<font color=red >如果要在项目中使用的话,这里一定要换成AFN的</font>

目录结构如上图,Library下建一个Theme用来存放所有的主题相关,dowmloadTheme.plist 是本地所有已下载的主题,其他的都是各个加压后的zip包,zip包解压后删除,每个主题资源下都有各自的颜色表ThemeConfig.plist,HPColorTable就是从里获取色值。

<font color=red >实际使用时记得要将文件夹和主题名字改为model里的md5加密</font>

api来自QQ主题,一些图片和色值会无法使用

最后,地址放上==>帮到您的话👍🌟

相关文章

网友评论

      本文标题:iOS 基于DKNightVerson主题 换肤,api来自QQ

      本文链接:https://www.haomeiwen.com/subject/iwyqsqtx.html