设计夜间模式的思路

方法一(适用于设置图片):

1、准备两套图片文件(不同模式使用不同的图片),可以通过在图片名称后面加上标识来区分不同模式应该使用的图片。

2、给UIImage添加一个类别,类别中写一个给UIImage加载图片的方法(方法实现步骤如下:)

第一步:从偏好设置中取出不同模式对应的值

NSString *mode = [[NSUserDefaultsstandardUserDefaults]stringForKey:@"Mode"];

第二步:用mode拼接一个新的图片名

第三步:用新的名字创建一个UIImage对象。

方法二(适用于设置字体、颜色):

1、创建一个plist文件,文件中为每个模式创建对应的key,key的值是字典,字典中存储每个控件对应的颜色值,以及对应的字体大小等字段。

2、为UIColor和UIFont创建类别,类别中写一个便利构造方法,用于初始化对象(方法实现步骤如下:)

第一步:从偏好设置中取出当前的浏览模式。

NSString *mode = [[NSUserDefaultsstandardUserDefaults]stringForKey:@"Mode"];

第二步:加载plist文件,根据从偏好设置中取出的值,和当前传入的颜色值key从字典中取出对应的颜色值。

第三步:返回对应的对象。

方法三(既适用于更换图片又适用于设置颜色,以及改变字体的大小):

1、在沙盒中创建文件夹,在文件夹中为每个模式分别创建子文件夹,子文件夹中存放着需要用到的图片(注意:每个子文件夹中的图片“名字”必须都是一样的,只是图片不一样而已)并添加一个用于设置颜色,以及字体大小的plist文件。

2、给需要设置模式的控件添加类别,在类别中写一个便利构造方法,用于初始化对象(方法实现步骤如下:)

第一步:从偏好设置中取出当前的模式

第二步:用取出的字符串,拼接一个新的图片路径

第三步:返回实例对象

注意:因为要试试修改模式,所以需要在通知中心注册一个通知,让需要更改的每个控制器都监听这个通知,当发出通知的时候做出相应的操作。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,604评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,269评论 19 139
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,863评论 1 92
  • 偶然间发现女儿很喜欢看书,对书上那些花花绿绿的东西很感兴趣,总是要缠着我问这问那的。于是我也有意识的开始给她买了很...
    人到中年1阅读 233评论 0 2
  • 一 寂静的夜被空虚填满,时针悄悄转到二这个数字,整理资料累了,资料纷繁复杂,怎么也整理不利索,自己永远不满意,怎一...
    华客鲁俊阅读 176评论 2 1