项目中要做白天夜景切换的功能,写了个扩展方便用,记录一下。不太完善,主要是提供一种思路。。。,欢迎大牛指点一下。

先附一个链接 

https://github.com/evolFe/DayNightDemo

效果图:

ios 实现白天夜景切换的方案ios 实现白天夜景切换的方案

利用category封装 使用是这样的

ios 实现白天夜景切换的方案

实现思路:

1,色值变化,主要是view的backgroundcolor,label.texColor, button.titlecolor等等。。。

要是白夜切换肯定要像实现多语言一样 有个key 然后动态绑定到视图上

这里实现是通过一个枚举,这样写代码的时候比价方便

ios 实现白天夜景切换的方案

2 图片变换,包括imageView 还有button

key 的话 就是图片本身名字 ,要是夜景的话 图片名字后加_night 例如 mine_bg.png 夜景就是 mine_bg_night.png

ios 实现白天夜景切换的方案

然后写一个字符串的 扩展

ios 实现白天夜景切换的方案

 

第二步,Key 解决了以后 接下来就是绑定的问题

ios 实现白天夜景切换的方案

创建一个容器类 保存该对象的target 并为对象添加方法和参数, 参数是多参数的。

ios 实现白天夜景切换的方案

这里是添加方法参数的实现, 是保存到一个数组里面了, 因为有可能例如button 可能设置了背景色,和title 图片等,多个方法保存

 

ios 实现白天夜景切换的方案

这里是创建容器类的时候 添加通知。。。 并遍历存储的对象方法并执行。。 支持多参数

 

接下来是category 绑定的问题 使用runtime特性

ios 实现白天夜景切换的方案

基本就完事儿了

此处单例使用的比较安全的方式,哈哈哈,因为之前被人问住了,所以尽量标准化写。。。

只是添加了几个简单的功能,项目还在写,用到时候继续补充。。。

相关文章:

猜你喜欢
相关资源
相似解决方案