美文网首页
护眼模式(夜间模式)

护眼模式(夜间模式)

作者: 古月思吉 | 来源:发表于2017-12-19 17:34 被阅读0次

背景:
护眼模式(大多数情况下,即夜间模式),通常是降低屏幕亮度和降低屏幕蓝光,以达到护眼功能

一、方案:
A.app的UI设计分为护眼模式和非护眼模式,切换模式的时候其实是整体样式的刷新


A-非夜间模式.png
A-夜间模式.png

B.单纯降低屏幕的亮度、过滤蓝光

二、实现思路:
1.A方案:
通知(告知ViewController切换主题) + 单例或本地数据持久化(用以保存切换后的主题)
具体参照文章:
http://www.jianshu.com/p/ffc39669b81e

2.B方案:
(1)直接更改屏幕亮度(由于Night Shift并没有开放API,过滤蓝光也没有开放API,所以首先想到是通过调用更改屏幕亮度的API):

UIScreen.main.brightness = brightness

问题:
更改屏幕亮度,是整部手机有效的,不仅仅是app内有效,但是在 AppDelegate.swift 文件的 applicationWillResignActive 方法中执行 UIScreen.main.brightness = brightness 并不会生效(很疑惑)。
所以放弃了直接更改屏幕亮度的方法

(2)直接更改app屏幕背景颜色:

//护眼模式
UIApplication.shared.keyWindow?.backgroundColor = UIColor.yellow
            UIApplication.shared.keyWindow?.alpha = 0.6
//非护眼模式
UIApplication.shared.keyWindow?.backgroundColor = UIColor.white
            UIApplication.shared.keyWindow?.alpha = 1

相关文章

网友评论

      本文标题:护眼模式(夜间模式)

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