换肤功能
2016-11-06 本文已影响19人
面糊
一. 换肤系统文件目录层次划分
- 创建根目录
ThemeResource
文件夹, 用于保存所有的肤色分类 -
/ThemeResource/light(dark)
, 在根目录内部, 创建不同的分类 -
/ThemeResource/light/styleConfig.plist
, 使用plist文件, 配置所有UI控件的颜色 - 在类别文件夹中, 如果需要在不同肤色类型中使用不同的图片, 则需要在不同的分类中提供相同文件名的图片, 用于换肤切换
二. 细节
- 根据控件类型的不同, 创建不同的字典, 内部的key为控件颜色的名称, value保存颜色的值(16进制颜色值, 可以用YYKit来进行转换)
- 如下图所示
-
ThemeResource
文件夹要直接加入到项目中, 然后使用ThemeManager
类来提取各个控件颜色的值 - 笔者使用了
SDImageCache
来缓存重复加载的图片用于提高加载速度, 当切换皮肤之后, 要注意释放之前缓存的图片