一.换肤的介绍
- 目前某些应用程序会有换肤功能(例如
QQ、网易云音乐
) - 换肤主要切换的是:背景图片/背景颜色
二.切换背景图片
- 界面的搭建
- 添加用户可以选择皮肤颜色的按钮
- 添加用户显示背景的
UIImageView
对象
- 当前用户点击对应的按钮时,显示对应的背景图片
- 抽取方法,传入皮肤颜色即可
- 默认进来没有皮肤颜色
- 记录用户选中的皮肤颜色
- 图片发生改变时,如何应对?
- 多个控制器实现换肤功能
- 抽取换肤的工具类
- 换肤工具类对外提供返回
UIImage
对象的方法- 传入图片的名字,返回对应的
UIImage
对象
- 传入图片的名字,返回对应的
- 换肤工具类可以记录当前皮肤的颜色
- 将默认皮肤和记录皮肤颜色的代码封装到工具类中
三.切换背景颜色
- 换肤的颜色需要记录下来
- 只有记录下来后才能读取对应的颜色,显示对应的颜色
- 通过
plist
文件记录颜色RGB
值
- 工具类对外提供获取颜色的方法
提示:不要把换肤的代码放到
viewDidLoad
里面,因为控制器是懒加载的
一旦加载上就不会重新加载
所以viewDidLoad
只会走一次,在切换了皮肤,后面的页面并不会变化所以要放在viewWillAppear
,因为每次都会加载,假如这个控制器是push
进来的那放在viewDidLoad
也可以实现换肤效果,因为push进来的控制器在pop
回去的时候回自动销毁,这样每次进来都是重新加载的,都会走viewDidLoad
此篇只提供思路,具体的实现和调用可以参考demo
demo下载地址
网友评论